我需要将字符串 simular转换为" 2016-07-10T21:32:20G"到日期。 但由于某些原因,我一次又一次只有 nil 。
我已阅读an article about date formater。不幸的是,避风港在那里得到了答案。我在the documentation找到了一些东西。并且文档说明了Unicode Date Format Patterns。它看起来与我的相似。
可能我错过了一些东西=(
我的代码示例。不幸的是总是没有。
let lastUpdatedDateString = "2016-07-10 21:32:20"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-mm-dd hh:mm:ss"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)
但是这段代码很好用:
let lastUpdatedDateString = "2016-07-10"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-mm-dd"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)
我在操场上测试它。
实际上我必须将此字符串(" 2016-07-10T21:32:20G")转换为日期。
PS
无论如何,感谢关注=)
答案 0 :(得分:2)
认为它只是格式化程序中的大写。试试这个......
let lastUpdatedDateString = "2016-07-10 21:32:20"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)
答案 1 :(得分:1)
这是我在操场上得到的
let lastUpdatedDateString = "2016-07-10T21:32:20"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-ddEEEEEHH:mm:ss"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)
print(lastUpdated)
并打印:Optional(2016-07-10 19:32:20 +0000)
(我是GMT + 2)
我不知道G代表什么,所以我不确定如何获得该模式的最后一个字符。 EEEEE
代表星期几(1个字符)
编辑:看来G
代表格里高利历
所以你可以解析字符串中的最后一个字母,如果它是格里高利历,那就添加它(但我想这是默认值):
dateFormatter.calendar = Calendar(identifier: .gregorian)
如果该字母是J
它的朱利安日历,那么你可以看到这个答案,看看如何将格里高利转换为朱利安:https://stackoverflow.com/a/12137019/2106940