从国家授时中心网站获取时间
2018-03-02 本文已影响341人
ZHK1024
概述
获取时间的原理很简单, 就是从网站的请求响应头部读取时间.
具体实现
这里以国家授时中心网站为例,.当然,百度什么的网站也是可以的.
首先看一下国家授时中心网站响应头信息:
那么我们只需要拿到 请求响应头 , 然后获取到
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