在下面的图片中,您可以看到我编写的代码和所有变量的值:
class fun getCurrentShortDate() -> String {
var todaysDate = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
var DateInFormat = dateFormatter.stringFromDate(todaysDate)
return DateInFormat
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样,当前日期没有问题,但是当我尝试将NSDate更改为字符串时,它就不会这样做了.
当我尝试记录当前日期时:
print(NSDate())
Run Code Online (Sandbox Code Playgroud)
要么
print(Date())
Run Code Online (Sandbox Code Playgroud)
(在Swift 3中)
或者任何日期对象,它显示错误的时间.例如,现在大概是16:12,但是上面显示了
2016-10-08 20:11:40 +0000
Run Code Online (Sandbox Code Playgroud)
我的日期是在错误的时区吗?如何修复日期以获得正确的时区?
为什么这样,以及如何解决它?如何在打印语句或调试器中轻松地在本地时区中显示任意日期?
(请注意,这个问题是一个"振铃",因此我可以提供一个简单的Swift 3/Swift 2 Date/NSDate扩展,让您可以轻松地在本地时区显示任何日期对象.