我只是想澄清一下我是否了解日期和时区的工作方式。
基本上,我有一个日期字符串@“2008-07-06 12:08:49”,我想将其转换为 NSDate。我希望这个日期和时间在当前用户的时区设置中。所以如果他们在 GMT 或 HST,它仍然是 12:08:49。
如果我有 unix 格式的日期 1215382129 (UTC) 并且我的时区设置为伦敦 (GMT),则 NSLog() 的输出日期为:
2008-07-06 12:08:49 +0100
如果我将时区更改为夏威夷 (HST) 并输出相同的日期,我会得到:
2008-07-06 12:08:49 -1000
这似乎工作正常,但我的印象是要获得夏威夷时间,我必须将时差(-10 小时)物理添加到 unix 时间戳。那么这不是必需的吗?
这是否意味着,无论 unix 时间指向的日期和时间是什么,它总是指向用户所在时区的相同日期和时间?
希望这是有道理的!
编辑
我刚刚意识到(感谢 Kevin Conner!)实际上 NSDateFormatter 正在根据当前时区为该日期字符串创建不同的 unix 时间戳!所以我完全错了!!:-)