2017-07-04 88 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。 –