我试图将一堆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'部分的说明符,我坚持了。
感谢任何帮助,谢谢。
答案 0 :(得分:11)
正确的格式为yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ
。
请参阅Unicode Date Format Patterns。
此外,ZZZZZ
时区格式的+00:00
格式已添加到iOS 6,iOS 5或更早版本不支持。
答案 1 :(得分: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
添加到格式