DateFormatter 返回错误的时间[重复]

Posted

技术标签:

【中文标题】DateFormatter 返回错误的时间[重复]【英文标题】:DateFormatter returns wrong time [duplicate] 【发布时间】:2017-09-05 06:30:49 【问题描述】:

我为 Date 做了一个扩展,它返回一个格式化的字符串:

extension Date 
    var myFormattedDate : String 
        let formatter = DateFormatter()
        formatter.timeZone = TimeZone.current
        formatter.dateFormat = "EEEE, MMMM d, y (HH:mm a)"
        return formatter.string(for: self)!
    

在运行时,我在 myFormattedDate 属性中设置了一个断点。

po self 打印:

2017-09-05 08:50:00 +0000

po formatter.string(for: self)! 打印:

2017 年 9 月 5 日,星期二(上午 11:50)"

可能是什么问题? 谢谢!

【问题讨论】:

【参考方案1】:

无论本地时区如何,打印Date 始终返回UTC 时间。如果您想在控制台中查看具有正确时区的日期,请避免直接打印 Date 对象。

【讨论】:

我没有打印日期对象,首先我使用DateFormatter 并从中得到错误的时间。正如您在上面的示例中看到的那样。

以上是关于DateFormatter 返回错误的时间[重复]的主要内容,如果未能解决你的问题,请参考以下文章

DateFormatter 中的 Swift 语言错误? [复制]

DateFormatter 返回零

Dateformatter 返回零日期

Swift:DateFormatter 返回 nil

DateFormatter 返回有效字符串

DateFormatter 在特定设备上返回 nil