如何在当前时区获得当前的NSDate?

时间:2016-05-08 15:11:01

标签: ios swift nsdate

我需要获得NSDate的当前时间,而不是迅速。我尝试在屏幕截图上执行此操作,但最终的nsdate位于错误的时区。enter image description here

1 个答案:

答案 0 :(得分:-1)

NSDate没有时区。它记录了地球上的瞬间。它在特定时区显示。

NSDateFormatter将在NSDate对象和日期字符串之间进行转换(在任一方向上)。

如果您在日期格式化程序中安装了一个时区,那么它将使用该时区将日期转换为字符串。如果您没有指定时区,它将使用用户的当前时区。

如果您尝试使用Swift print语句或NSLog显示NSDate,那么它将以UTC显示 。总是。

您发布的代码打印strDate,您使用日期格式化程序创建的日期字符串是正确的。行'print(localDate!)没有意义。

重复:NSDate个对象没有时区。将它们记录到控制台时,它们将始终以UTC格式显示。如果您想在当地时区看到它们,那么您需要使用日期格式化程序。