2012-11-30 141 views
0

我有問題將字符串轉換爲NSDate對象,我不知道爲什麼。從ISO 8601字符串創建一個NSDate對象的問題

NSString* tester= @"2012-11-26T10:20:40.187"; 
NSLog(@"", tester); //Print the Date String 

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; 
NSDate *date = [formatter dateFromString:tester];   //Store the date 

NSDateFormatter *output = [[NSDateFormatter alloc] init]; 
[output setDateStyle:NSDateFormatterMediumStyle]; 
NSLog(@"DATE OBJECT:%@\nDATE STRING: \"%@\"", [output stringFromDate:date]);  //Print the NSDate object and the string 

,但我似乎得到的是:

DATE OBJECT:(null) 
DATE STRING: "2012-11-26T10:20:40.187" 

我想,這有什麼做的.187,但我不知道。對不起,如果這是重複的,但我不知道這一點。

非常感謝您提前!

+1

187不是一個時區,這是毫秒。使用'@'yyyy' - 'MM' - 'dd'T'HH':'mm':'ss'。'SSS']' –

回答

1

毫秒的縮寫是「S」而不是Z,它是TimeZone。 看來您已經閱讀了該示例的正確文檔,但您錯過了Unicode技術標準#35的鏈接的 。 請參閱NsDateFormatter Docu,搜索「Mac OS X v10.4中的格式化程序使用版本tr35-4」。

嘗試以下:

[formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.SSS"]; 

參見NSDateFormatter Question

+0

就是這樣,非常感謝你 – iamhungry129

+0

你也可以upvote,to。這是否工作? – AlexWien