使用dateFormatter和Swift

时间:2017-03-07 10:45:12

标签: swift date

这个问题不是另一个问题的副本:我有一个我在其他地方找不到的问题。

我想将日期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"但它仍然无效。

2 个答案:

答案 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 xxxxyyyy-MM-dd HH:mm:ss XXXX

Read more

答案 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所说,你必须改变你的模板。