2012-05-07 84 views
1

我有日期(爲NSString):NSDateFormatter格式格式的顯示格式不正確

20120508T224500Z 

我試圖用NSDateFormatter創建從字符串的NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyyMMddTHHmmssZ"]; 
NSDate *dateFromString = [[NSDate alloc] init]; 

但這會錯誤地解析/格式化NSDate。

我想獲得的格式爲:

4:45 PM 5/8/2012 

我如何使用日期格式yyyyMMddTHHmmssZ得到這個格式?

回答

4

您必須單引號的 'T' 和 'Z' 的字符串:20120508T224500Z

格式化信息,請參閱unicode date formatting

實施例:

NSString *dateString = @"20120508T224500Z"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyyMMdd'T'HHmmss'Z'"]; 
NSDate *dateFromString = [dateFormatter dateFromString:dateString]; 
NSLog(@"dateFromString: %@", dateFromString); 

[dateFormatter setDateFormat:@"h:m a M/d/yyyy"]; 
NSString *newDataString = [dateFormatter stringFromDate:dateFromString]; 
NSLog(@"newDataString: %@", newDataString); 

的NSLog輸出:

dateFromString:2012-05-09 2時45分00秒0000
newDataString:下午10點45 2012年5月8日

請注意,NSLog使用NSDate描述方法並在本地時間顯示日期/時間。
使用- (void)setTimeZone:(NSTimeZone *)tz在不同的時區創建字符串。

+0

完美答案! – Brett