-1

我已经尝试并尝试过研究并再次尝试,但我无法格式化

日期为:“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]];

有什么线索吗?

提前致谢

4

1 回答 1

2

对于您使用的非本地化 ISO 偏移量,例如,-07:00您需要Z在格式中使用 5 个字符。因此,对于给定的源数据,正确的格式字符串将是:

yyyy-MM-dd'T'HH:mm:ssZZZZZ

虽然当前使用的技术标准不需要转义日期和时间分隔符,正如 Jeff 在评论中提到的那样,这样做可能不是一个坏主意,特别是如果您的源日期来自服务器或其他东西。有关于进行这些替换的讨论,比如字母,这将改变特定于语言环境的日期和时间分隔符。从技术角度逃避它们也没有什么坏处,只是更难阅读:

yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZZ

有关更多信息,当前日期格式化程序基于 Unicode Technical Spec #35。#35 的日期和时间模式规范可以在http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns找到

于 2013-10-27T17:10:13.920 回答