In what format is this date string?

北慕城南 提交于 2019-12-17 20:24:00

问题


Im trying to convert a bunch of NSStrings into NSDate objects. Here is an example string:

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

But I can't figure out what format it is in, so far I have (The question marks are the bits I'm stumped with):

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

The main problem I'm having is with the '.427' part although if I'm making a mistake elsewhere, let me know :)

Does anyone have any ideas? Or could point me to a list of all the possible date format specifiers? I found this: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx which is useful but it doesn't appear to have any specifier for the '.427' part that I'm stuck on.

Any help is appreciated, Thanks.


回答1:


The proper format is yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ.

See Unicode Date Format Patterns.

Also, the ZZZZZ format for the +00:00 timezone format was added to iOS 6 and is not supported under iOS 5 or earlier.




回答2:


It is a valid date format as specified by ISO 8601, according to W3

The formats are as follows. Exactly the components shown here must be present, with exactly this punctuation. Note that the "T" appears literally in the string, to indicate the beginning of the time element, as specified in ISO 8601.

Year: YYYY (eg 1997) Year and month: YYYY-MM (eg 1997-07) Complete date: YYYY-MM-DD (eg 1997-07-16) Complete date plus hours and minutes: YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00) Complete date plus hours, minutes and seconds: YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00) Complete date plus hours, minutes, seconds and a decimal fraction of a second YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)

where:

 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)

In your case, the date has millisecond accuracy, try adding .sss to the format



来源:https://stackoverflow.com/questions/16218855/in-what-format-is-this-date-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!