0

日付の文字列から NSDate オブジェクトを取得したいのですが、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];
4

3 に答える 3

4

「Z」は引用符で囲む必要があります。

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

于 2012-04-05T17:54:21.193 に答える
1

yyyyそれは何年もあるはずです

[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
于 2012-04-05T17:37:02.683 に答える
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];

それが役に立てば幸い。

于 2012-04-05T18:05:19.043 に答える