下面的代码可以在我的iOS 4.2之前的应用程序中运行。
NSString *sunday = @"2011-03-13 20:15 -04:00";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm Z"];
NSDate *myDate = [dateFormatter dateFromString:sunday];
NSLog(@"sunday: %@ myDate: %@ fromNow: %d", sunday, myDate, [myDate timeIntervalSinceNow]);输出:
sunday: 2011-03-13 20:15 -04:00 myDate: (null) fromNow: 0我在这里做错了什么?myDate是null。是不是dateFormmater有什么地方变了,我错过了。我想这在这一点上是微不足道的,因为我一直在盯着这个……
发布于 2011-02-07 00:32:19
如果我没理解错的话,Z说明符同时解析"-0400“和"GMT-04:00",而不是"-04:00”。UTS #35似乎证实了这一点。在我的测试中,它甚至解析了"GMT-0400“。所以"-04:00“看起来确实像是NSDateFormatter拒绝理解的唯一时区格式。
我可以愤世嫉俗地建议Apple's bug reporter作为答案吗?
发布于 2011-02-06 23:25:30
试着引用你的破折号,例如:
@"yyyy'-'MM'-'dd HH':'mm Z"我在这里读得最好:http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns似乎暗示这实际上是必需的,尽管我似乎记得过去在iOS w/o问题上使用过相同的日期格式化模式。
https://stackoverflow.com/questions/4914017
复制相似问题