Convert String to Date Returns nil 仅适用于下午时间

Convert String to Date Returns nil for afternoon times only

我有将字符串转换为日期的代码:

            let dateString = detailData.value["eventStart"] as! String
            print(dateString)

            let dateFormatter = NSDateFormatter()
            dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss Z" /*find out and place date format from http://userguide.icu-project.org/formatparse/datetime*/
            let date = dateFormatter.dateFromString(dateString)   // ||  date!.timeIntervalSince1970 >= presentDate.timeIntervalSince1970

            print(date?.timeIntervalSince1970)

输出为:

2016-05-31 03:18:11 +0000
Optional(1464664691.0)

2016-06-03 14:00:44 +0000
nil

2016-06-01 00:38:08 +0000
Optional(1464741488.0)

2016-06-04 00:25:55 +0000
Optional(1464999955.0)

2016-05-31 22:19:54 +0000
nil

我看到下午时间(12+)return 无。

我怎样才能避免这种情况?

您的日期解析失败。在你的例子中,它失败是因为输入字符串中的小时组件无效。

使用 24 小时制 HH 而不是 12 小时制 hh