有效的Swift 4日期对象格式化为“HH:mm”时返回“00:00”

时间:2017-11-24 17:31:41

标签: swift date datetime

我有一个我想要转换的有效Date()对象。我看过其他SO帖子,似乎我的代码应该这样做:

private func getHoursMinutesString(date:Date)  -> String
{
    let formatter = Foundation.DateFormatter()
    formatter.dateFormat = "HH:mm"
    return formatter.string(from: date)
}

但是,返回的时间总是“00:00”。如果放入一个新的Date()对象,它将返回正确的时间。我想知道我可以看到的Date()对象可能出现什么问题?这是数据的lldb打印输出:

date formatter issue

如您所见,格式化程序是一个有效的对象。日期(我认为)是一个有效的日期对象。当通过格式化程序时,它变为“00:00”,但它与新的Date()对象一起正常工作。

date对象中是否存在任何格式不正确或缺失的内容?或者我的格式化程序中是否还有一个额外的步骤?

更新进行研究后,设置时区可以解决问题。为什么,我不知道!

1 个答案:

答案 0 :(得分:0)

尝试添加:

dateFormatter.timeZone = NSTimeZone(name: "UTC")