这个问题不是另一个问题的副本:我有一个我在其他地方找不到的问题。
我想将日期String
转换为Date
格式。这个String
日期应该与Date
的格式相同,因为我曾经将它作为String上传到数据库中。这是String
日期的样子:
" 2017-03-10 22:16:00 + 0000&#34 ;;
我试图像这样转换它:
let df: DateFormatter = DateFormatter()
df.dateFormat = "yyyy-MM-dd hh:mm:ss Z"
print(beginDateString) // "2017-03-10 22:16:00 +0000"
let beginDate = df.date(from: beginDateString)
print(beginDate) // App crashs here because of nil value.
问题在于它为变量beginDate
提供了一个零值。
我也尝试了其他dateFormat
,就像这样:"yyyy-MM-dd hh:mm:ss"
但它仍然无效。
答案 0 :(得分:3)
使用yyyy-MM-dd HH:mm:ss Z
而不是yyyy-MM-dd hh:mm:ss Z
。
因为 小时的hh
上午/下午(1~12)。
您也可以使用:yyyy-MM-dd HH:mm:ss xxxx
或yyyy-MM-dd HH:mm:ss XXXX
等
答案 1 :(得分:1)
试试这个......
let beginDateString: String = "2017-03-10 22:16:00 +0000"
let df: DateFormatter = DateFormatter()
df.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
if let beginDate = df.date(from: beginDateString)
{
print(beginDate)
}
正如@javimuu所说,你必须改变你的模板。