这个datestring是什么格式?

我试图将一堆NSStrings转换成NSDate对象。 这是一个string示例:

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

但我不明白它是什么格式,到目前为止我已经(问号是我难以置信的):

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

我遇到的主要问题是“.427”部分,但如果我在别处犯了一个错误,请告诉我:)

有没有人有任何想法? 或者可以指向我所有可能的date格式说明符的列表? 我发现这个: http : //msdn.microsoft.com/en-us/library/8kb3ddd4.aspx这是有用的,但它似乎没有任何说明符的'.427'部分,我卡住了。

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

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

请参阅Unicodedate格式模式 。

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

根据W3的规定,这是ISO 8601规定的有效date格式

格式如下。 这里显示的组件必须存在,正是这个标点符号。 请注意,“T”字面上出现在string中,以指示时间元素的开始,如ISO 8601中所规定的。

YYYY-MM(例如1997-07)完成date:YYYY-MM-DD(例如1997-07-16)完成date加上小时和分钟:YYYY-MM-DDThh:mmTZD (例如1997-07-16T19:20 + 01:00)完成date加上小时,分钟和秒钟:YYYY-MM-DDThh:mm:ssTZD(例如1997-07-16T19:20:30 + 01:00)完成date加上第二个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) 

在你的情况下,date有毫秒的准确性,尝试添加.sss的格式