我已经把头撞了这么久了!我有一个字符串:2012-09-27T18:00:00.000-04:00我的格式为:[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"]; 我得到一个转换字符串的null结果.有人可以帮助使用正确的日期格式吗?
根据NSDateFormatter的文档:
格式字符串使用Unicode技术标准#35中的格式模式.该标准的版本因操作系统的发布而异:
OS X v10.8和iOS 6.0中的格式化程序使用[版本tr35-25].
以下链接:
s 1..2 12秒.使用一个或两个填充零.
换句话说,s秒表示只有整数部分.
但就在下面,有:
S 1..n 3456 Fractional Second - 将字母数量截断(与其他时间字段一样).(示例显示使用模式SSSS显示秒值12.34567)
然后,你没有匹配时区的原因是你引用了Z它,所以它匹配文字Z而不是时区格式.
为了匹配您所看到的ISO8601时区格式,相同的文档说您想要ZZZZZ.
所以,看起来,至少对于10.8/iOS 6,你想要:
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'.'SSSZZZZZ"]
Run Code Online (Sandbox Code Playgroud)
对于早期版本,您已获得指向文档的链接; 你应该能够弄明白了.
测试这个(在Python中,保存几行代码):
>>> import Cocoa
>>> df = Cocoa.NSDateFormatter.alloc().init()
>>> df.setDateFormat_("yyyy-MM-dd'T'HH:mm:ss'.'SSSZZZZZ")
>>> print df.dateFromString_(2012-09-27T18:00:00.000-04:00')
2012-09-27 22:00:00 +0000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |