5

我试图将一堆 NSStrings 转换为 NSDate 对象。这是一个示例字符串:

2013-04-25T15:51:30.427+1.00

但我无法弄清楚它是什么格式,到目前为止我有(问号是我被难住的位):

yyyy-MM-ddTHH:mm:ss????zzz

我遇到的主要问题是“.427”部分,但如果我在其他地方犯了错误,请告诉我:)

有没有人有任何想法?或者可以指出所有可能的日期格式说明符的列表?我发现了这个:http: //msdn.microsoft.com/en-us/library/8kb3ddd4.aspx这很有用,但它似乎没有我坚持的“.427”部分的任何说明符。

任何帮助表示赞赏,谢谢。

4

2 回答 2

11

正确的格式是yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ.

请参阅Unicode 日期格式模式

此外,时区格式ZZZZZ+00:00格式已添加到 iOS 6 中,并且在 iOS 5 或更早版本下不受支持。

于 2013-04-25T15:43:02.947 回答
0

根据W3 ,它是 ISO 8601 指定的有效日期格式

格式如下。此处显示的组件必须完全存在,并带有这个标点符号。请注意,“T”按字面意思出现在字符串中,表示时间元素的开始,如 ISO 8601 中所指定。

年:YYYY(例如 1997) 年和月:YYYY-MM(例如 1997-07) 完整日期:YYYY-MM-DD(例如 1997-07-16) 完整日期加上小时和分钟:YYYY-MM-DDThh:mmTZD (例如 1997-07-16T19:20+01:00)完整日期加上小时、分钟和秒:YYYY-MM-DDThh:mm:ssTZD(例如 1997-07-16T19:20:30+01:00)完整日期加上小时、分钟、秒和秒的小数部分 YYYY-MM-DDThh:mm:ss.sTZD(例如 1997-07-16T19:20:30.45+01:00)

在哪里:

 YYYY = four-digit year
 MM   = two-digit month (01=January, etc.)
 DD   = two-digit day of month (01 through 31)
 hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
 mm   = two digits of minute (00 through 59)
 ss   = two digits of second (00 through 59)
 s    = one or more digits representing a decimal fraction of a second
 TZD  = time zone designator (Z or +hh:mm or -hh:mm)

在您的情况下,日期具有毫秒精度,请尝试添加.sss到格式

于 2013-04-25T15:37:04.007 回答