2012-04-05 9 views
0

日付の文字列からNSDateオブジェクトを取得しますが、nilを返します。私は間違って何をしていますか?ありがとう!NSStringからのNSDate - dateFromStringはnilを返します

NSString *dateString = @"2012-04-05T13:27:32.369Z"; 

NSDateFormatter* df = [[NSDateFormatter alloc]init]; 
[df setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss.SSSZ"]; 
NSDate* date = [df dateFromString:dateString]; 
NSLog(@"1%@",date); 
[df release]; 
+2

Zを一重引用符で囲みます。 –

+1

私はAadhiraに同意します。 – Nilesh

答えて

1

それは年

[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
+0

"yyyy-MM-dd'T'HH:mm:ss.SSSZ"はnullを返します。 – zaph

4

"Z" のためにyyyyする必要があります引用符で囲む必要があります。

NSDateFormatter* df = [[NSDateFormatter alloc]init]; 
NSString *dateString = @"2012-04-05T13:27:32.369Z"; 
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
NSDate* date = [df dateFromString:dateString]; 
NSLog(@"1: %@",date); 

NSString *newDateString = [df stringFromDate:date]; 
NSLog(@"2: %@",newDateString); 

のNSLog出力:

1:2012-04- 05 17:27:32 +0000
2:2012-04-05T13:27:32.369

NSLogは、現在のタイムゾーンでNSDateデフォルトのフォーマッタを使用していることに注意してください。

参照:Date_Field_Symbol_Table

0

使用NSDateFormatter NSDateを得るためには、使用 - (NSTimeInterval)timeIntervalSince1970を秒を取得するために、1970年

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; 
NSDate *date = [formatter dateFromString:@"2012-04-05T13:27:32.369Z"]; 
NSLog(@"Date: %@", date); 
NSLog(@"1970: %f", [date timeIntervalSince1970]); 
NSLog(@"sDate: %@", [formatter stringFromDate:date]); 
[formatter release]; 

はそれが役に立てば幸い以来。

関連する問題