猿问

NSDate()或Date()显示错误的时间

NSDate()或Date()显示错误的时间

当我尝试记录当前日期时:

print(NSDate())

要么

print(Date())

(在Swift 3中)

或者任何日期对象,它显示错误的时间。例如,现在大概是16:12,但是上面显示了

2016-10-08 20:11:40 +0000

我的日期是在错误的时区吗?如何修复日期以获得正确的时区?

为什么这样,以及如何解决它?如何在打印语句或调试器中轻松地在本地时区中显示任意日期?

(请注意,这个问题是一个“振铃”,因此我可以提供一个简单的Swift 3 / Swift 2 Date / NSDate扩展,让您可以轻松地在本地时区显示任何日期对象。


哆啦的时光机
浏览 593回答 2
2回答

Helenr

一个简单的方法来纠正您的时区的日期将是使用 TimeZone.current.secondsFromGMT()对于本地时间戳值,例如:let currentLocalTimestamp = (Int(Date().timeIntervalSince1970) + TimeZone.current.secondsFromGMT())
随时随地看视频慕课网APP
我要回答