美文网首页
从国家授时中心网站获取时间

从国家授时中心网站获取时间

作者: ZHK1024 | 来源:发表于2018-03-02 17:24 被阅读341次

    概述

    获取时间的原理很简单, 就是从网站的请求响应头部读取时间.

    具体实现

    这里以国家授时中心网站为例,.当然,百度什么的网站也是可以的.

    首先看一下国家授时中心网站响应头信息:

    国家授时中心网站响应头信息
    那么我们只需要拿到 请求响应头 , 然后获取到 Date 字段并对其进行格式化即可.

    代码很简单:
    我们无需关注拿到的数据, 只要获取到 response 即可.

        NSURL *url = [NSURL URLWithString:@"http://www.ntsc.ac.cn/"];
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        // 此处无需获取其他内容, 只需要获取响应头即可, 因此请求方式使用 HEAD
        request.HTTPMethod = @"HEAD";
        
        NSURLSessionTask *task =
        [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            NSHTTPURLResponse *res = (NSHTTPURLResponse *)response;
            
            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
            formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss Z";
            // 不设置地区的话, 在我们自己的机器上面默认就是中文的格式, 
            // 最终结果是 null
            formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
        
            NSDate *date = [formatter dateFromString:[[res allHeaderFields] valueForKey:@"Date"]];
            formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
            NSLog(@"date = %@", [formatter stringFromDate:date]);
        }];
        [task resume];
    

    输出结果:

    date = 2018-03-02 17:13:17
    

    相关文章

      网友评论

          本文标题:从国家授时中心网站获取时间

          本文链接:https://www.haomeiwen.com/subject/qsoaxftx.html