将字符串转换为日期仅在下午时间返回nil

时间:2016-06-01 01:35:15

标签: ios swift nsdate

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

            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岁以上)返回零。

我该如何防止这种情况?

1 个答案:

答案 0 :(得分:2)

您的日期解析失败。在您的情况下,由于输入字符串中的小时组件无效,它会失败。

使用24小时格式HH代替12小时格式hh