有没有办法可以将此字符串格式化为"2014-08-22T18:30:00Z"
,格式为2014-08-22
和18:30
等2个子字符串?
答案 0 :(得分:1)
我建议你不要考虑这两个不同的字符串。我建议真正的问题是如何将此ISO 8601 / RFC 3339日期字符串转换为NSDate
。然后,如果需要,您可以为日期和时间创建单独的字符串。
但您可能希望将它们转换为单个NSDate
对象,因为原始字符串是Zulu(即GMT / UTC),但您可能希望在本地时区显示最终日期和时间。但是如果你将它们作为单独的字符串返回,当你进行时区调整时,当时区变化导致一年中的不同日期时,纠正日期变得很麻烦。
无论如何,这是解析"2014-08-22T18:30:00Z"
字符串的方法:
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
formatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
let date = formatter.dateFromString("2014-08-22T18:30:00Z")
请注意,locale
问题是一个微妙的问题,许多人在Technical Q&A QA1480中忽略并讨论过这个问题。