{
NSURLConnection *_connection;
void(^_netWorkTimeBlock)(NSString *netWorkTime);
}
/**
* 获取网络时间
*
* @param nowNetWorkTimeBlock 返回时间 / 或者无网络状态信息
*/
- (void)getNetworkTimeBlock:(void(^)(NSString *nowNetWorkTime))nowNetWorkTimeBlock
{
if (![self isConnectNetWork]) {
if (nowNetWorkTimeBlock) {
nowNetWorkTimeBlock(@"");
return;
}
}
NSString *urlString = @"http://www....";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
_connection = [NSURLConnection connectionWithRequest:request delegate:self];
_netWorkTimeBlock = ^(NSString *netWorkTime){
if (nowNetWorkTimeBlock) {
nowNetWorkTimeBlock(netWorkTime);
}
};
}
转换为当地时区的时间
//- (NSDate *)getNowDateFromatAnDate:(NSDate *)anyDate
//{
// //设置源日期时区
// NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];//或GMT/UTC
// //设置转换后的目标日期时区
// NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];
// //得到源日期与世界标准时间的偏移量
// NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:anyDate];
// //目标日期与本地时区的偏移量
// NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:anyDate];
// //得到时间偏移量的差值
// NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
// //转为现在时间
// NSDate* destinationDateNow = [[NSDate alloc] initWithTimeInterval:interval sinceDate:anyDate];
// return destinationDateNow;
//}
#pragma mark - NSURLConnectionDataDelegate
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse * rp = (NSHTTPURLResponse *)response;
// NSLog(@"%@",rp.allHeaderFields[@"Date"]);
NSString *timeStr = rp.allHeaderFields[@"Date"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"];
NSLocale* local = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[formatter setLocale:local];
NSDate *date = [formatter dateFromString:timeStr];
// NSLog(@"%@",date);
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
[fmt setDateFormat:@"yyyy-MM-dd"];
NSString *dateStr = [fmt stringFromDate:date];
// NSLog(@"%@",dateStr);
if (_netWorkTimeBlock) {
_netWorkTimeBlock(dateStr);
}
[_connection cancel];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
if (_netWorkTimeBlock) {
_netWorkTimeBlock(@"");
}
}
获取网络时间
最新推荐文章于 2022-02-11 10:25:55 发布