2017-07-04 104 views
0
NSString *[email protected]"2017-07-06T10:00:00"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-ddTHH:mm:ss"; 

NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone]; 
[dateFormatter setTimeZone:destinationTimeZone]; 

NSDate *oldTime = [dateFormatter dateFromString:strUTCTime]; 

NSString *estDateString = [dateFormatter stringFromDate:oldTime]; 
NSLog(@"Local time is ===> %@",estDateString); 
+0

您需要调试自己,或者至少向我们展示一些有用的结果。例如'oldTime'是'nil',这就是为什么'estDateString'无论如何都是零。所以你的问题来自'oldTime'。事实上,我删除了'timeZone'东西来检查我是否可以得到'NSDate'。它帮助我发现问题出在'dateFormat'上,你需要“逃离”'''dateFormatter.dateFormat = @“yyyy-MM-dd'T'HH:mm:ss”;' – Larme

+0

是的,需要逃脱T谢谢。 =====> dateFormatter.dateFormat = @“yyyy-MM-dd'T'HH:mm:ss”; – user2964955

回答

1

以下是工作和测试的代码。

NSString *[email protected]"2017-07-06T10:00:00"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss"; 
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en-US"]]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 

NSDate *oldTime = [dateFormatter dateFromString:strUTCTime]; 

NSLog(@"UTC time is ===> %@",oldTime); 

NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone]; 
[dateFormatter setTimeZone:destinationTimeZone]; 
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; 

NSString *estDateString = [dateFormatter stringFromDate:oldTime]; 
NSLog(@"Local time is ===> %@",estDateString); 

请让我知道它是否有效。

+0

谢谢你的魅力。 – user2964955

+0

它工作肯定是upvote。 –