答案 0 :(得分:-1)
NSDate
没有时区。它记录了地球上的瞬间。它在特定时区显示。
NSDateFormatter
将在NSDate对象和日期字符串之间进行转换(在任一方向上)。
如果您在日期格式化程序中安装了一个时区,那么它将使用该时区将日期转换为字符串。如果您没有指定时区,它将使用用户的当前时区。
如果您尝试使用Swift print
语句或NSLog
显示NSDate,那么它将以UTC显示 。总是。
您发布的代码打印strDate,您使用日期格式化程序创建的日期字符串是正确的。行'print(localDate!)没有意义。
重复:NSDate
个对象没有时区。将它们记录到控制台时,它们将始终以UTC格式显示。如果您想在当地时区看到它们,那么您需要使用日期格式化程序。