如何在 Swift2 2.0 中将字符串转换为日期
How to convert a string to Date in Swift2 2.0
我正在努力将日期字符串转换为 NSDate
,但我不断收到 nil
:
let strDate = self.DateList[0] // "2015-10-06T15:42:34Z"
print(strDate)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
print (dateFormatter.dateFromString(strDate))
而 运行 结果是:
2016-05-18T14:00:54.466Z
nil
我不知道为什么,有什么建议吗?
您几乎成功了 - 只需要逃出 'Z':
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
您在 print(strDate)
中获得了 2016-05-18T14:00:54.466Z
所以,你的格式应该是 yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
//--------------------------------2016-05-18 T 14:00:54.466 Z
----
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
print (dateFormatter.dateFromString(strDate))
更安全的解决方案是使用 ZZZZZ
作为时区说明符,或者您可以使用 X
说明符。
Z
和 X
之间的区别基本上是 X
允许在时间偏移为零时使用文字 Z。参见 Date Field Symbol Table
当然,您还缺少毫秒部分 (.SSS
)。如果你有两种格式,一种有毫秒,一种没有毫秒,你将不得不使用两种不同的格式化程序。
我正在努力将日期字符串转换为 NSDate
,但我不断收到 nil
:
let strDate = self.DateList[0] // "2015-10-06T15:42:34Z"
print(strDate)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
print (dateFormatter.dateFromString(strDate))
而 运行 结果是:
2016-05-18T14:00:54.466Z
nil
我不知道为什么,有什么建议吗?
您几乎成功了 - 只需要逃出 'Z':
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
您在 print(strDate)
中获得了 2016-05-18T14:00:54.466Z
所以,你的格式应该是 yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
//--------------------------------2016-05-18 T 14:00:54.466 Z
----
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
print (dateFormatter.dateFromString(strDate))
更安全的解决方案是使用 ZZZZZ
作为时区说明符,或者您可以使用 X
说明符。
Z
和 X
之间的区别基本上是 X
允许在时间偏移为零时使用文字 Z。参见 Date Field Symbol Table
当然,您还缺少毫秒部分 (.SSS
)。如果你有两种格式,一种有毫秒,一种没有毫秒,你将不得不使用两种不同的格式化程序。