0

我在将字符串转换为 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 有关,但我不确定。如果这是重复的,我很抱歉,但我无法弄清楚。

非常感谢您!

4

1 回答 1

1

毫秒的缩写是“S”而不是 Z,即 TimeZone。您似乎已经阅读了该示例所在的正确文档,但您错过了指向 Unicode 技术标准 #35 的链接。请参阅 NsDateFormatter 文档,搜索“Mac OS X v10.4 中的格式化程序使用版本 tr35-4”。

试试下面:

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

另请参阅NSDateFormatter 问题

于 2012-11-30T01:37:03.800 回答