【发布时间】:2016-10-05 08:23:12
【问题描述】:
我的日期格式如下:
2016-08-26T05:16:50.200Z
我正在尝试将类似的日期格式字符串解析为 Swift 3.0 中的 Date 对象。
这是我的努力:
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-mm-dd EEEEE HH:mm:ss Z"
formatter.locale = Locale(identifier: "us")
var date = formatter.date(from: date_str)!
date_str 是上面提到的格式。
不幸的是,swift 无法识别格式并返回 nil。
注意:我不想更改字符串以匹配格式化程序,而是使格式化程序适应字符串的格式。字符串是外部源的,所以我没有能力改变字符串的格式,但坚持使用它并创建一个可以识别字符串日期模式的格式化程序。
关于我的格式错误的任何想法?
【问题讨论】:
-
也许是个愚蠢的问题,但是您是否尝试过删除空格以使字符串与格式完全匹配? "yyyy-mm-dd EEEEE HH:mm:ss Z" -> "yyyy-mm-ddEEEEEHH:mm:ssZ"
-
@ZassX 谢谢。我想我已经尝试过了,但不是最后的 Z。让我试试。
-
@ZassX 不,那没有用。老实说,当我阅读有关格式化程序可能值的文档时,Z 不可用,我也不知道这在现实世界日期中意味着什么。
-
我尝试过使用在线格式化程序。这对我来说没问题,但这意味着日期字符串有点不同:2016-08-26T05:16:50-0200 我认为字符串中的 Z 不应该存在。也请自行检查:nsdateformatter.com
标签: swift date nsdate swift3 nsdateformatter