我已经尝试过并尝试过并再次尝试过但我无法格式化
日期是: “2013-08-08T11:10:09-07:00”
我尝试过使用“yyyy” - “MM” - “DD'T'HH”:“mm”:“ssZ”以及一系列不同的排列,但无济于事。我想也许服务器发送的时区格式不正确。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy'-'MM'-'DD'T'HH':'mm':'ssZ"];
return [dateFormatter dateFromString:[dictionary objectForKey:key]];
任何线索?
提前致谢
答案 0 :(得分:2)
对于您正在使用的非本地化ISO偏移量,例如-07:00
- 您需要在格式中使用5个Z
个字符。因此,对于给定的源数据,正确的格式字符串将是:
yyyy-MM-dd'T'HH:mm:ssZZZZZ
虽然目前使用的技术标准不需要转发日期和时间分隔符,正如杰夫在评论中提到的那样,这样做可能不是一个坏主意,特别是如果您的源日期来自服务器或其他东西。有关更改特定于语言环境的日期和时间分隔符的替换(如字母)的讨论。从技术角度来说逃避它们也没有什么害处,只是更难以理解:
yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZZ
有关更多信息,当前日期格式化程序基于Unicode技术规范#35。可以在http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns
找到#35的日期和时间模式规范