如何格式化" 2014-08-22T18:30:00Z"到'2014-08-22`和'18:30`

时间:2014-11-17 14:16:28

标签: datetime swift

有没有办法可以将此字符串格式化为"2014-08-22T18:30:00Z",格式为2014-08-2218:30等2个子字符串?

1 个答案:

答案 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中忽略并讨论过这个问题。