我有这个日期:
2013-07-15T06:07:53-04:00
我使用NSDateFormatter将其转换为NSDate:
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
这有效,但无法识别时区。它返回:
2013-07-15 10:07:53 +0000
我做错了什么?
由于
答案 0 :(得分:2)
日志输出正确。 NSLog
NSDate
将始终以UTC显示日期/时间(请参阅输出的+0000
而不是-04:00
)。无论日历和时区如何,NSDate
个对象都代表特定的时刻。您将此“时刻”与格式化程序(设置了时区)结合使用,以便将“时刻”格式化为特定于语言环境的时间。
如果您想查看使用您自己的时区记录输出:
// pick a different timezone if necessary
[formatter setTimeZone:[NSTimeZone localTimeZone]];
NSLog(@"%@", [formatter stringFromDate:momentInTime];
答案 1 :(得分:0)
请改为尝试:
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
答案 2 :(得分:0)
不是字符串末尾的“-04:00”告诉NSDateFormatter这个日期是GMT-4,因此,它只是将它转换为GMT?
如果没有,请提供NSDateFormatter的完整初始化。
答案 3 :(得分:0)