字符串日期不正确

时间:2016-10-17 09:53:50

标签: ios swift date

我在某处复制了Swift的Date对象的扩展,允许我从字符串初始化Date,如下所示:

extension Date {
    init(fromString: String) {
        let str = "\(fromString) 12:00"
        let dateStringFormatter = DateFormatter()
        dateStringFormatter.dateFormat = "yyyy-MM-dd hh:mm"
        dateStringFormatter.timeZone = NSTimeZone.default
        let d = dateStringFormatter.date(from: str)!
        self.init(timeInterval: 0, since: d)
    }
}

例如,如果我将"2016-10-16"作为自定义初始值设定项的字符串传递,则打印时的日期应为"2016-10-16 22:00:00 +0000",但现在为"2016-10-15 22:00:00 +0000"

知道为什么吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

感谢@jcaron解决了这个问题。

问题

问题在于我在做"hh:mm"时混合了12小时和24小时的fomat。这用于12小时格式,而我想使用24小时格式。

解决方案

要解决此问题,"hh:mm"需要更改为 "HH:mm"