gpt4 book ai didi

iphone - 处理 Cocoa 中的时区

转载 作者:行者123 更新时间:2023-12-03 16:53:23 24 4
gpt4 key购买 nike

我只是想澄清一下我是否理解日期和时区的工作原理。

基本上,我有一个日期字符串 @"2008-07-06 12:08:49",我想将其转换为 NSDate。我希望此日期和时间位于当前用户设置的时区中。因此,如果它们采用 GMT 或 HST,则仍然是 12:08:49。

如果我的日期格式为 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 时间戳!所以我完全错了!! :-)

最佳答案

免责声明,我主要是一个 Java 人。但在这方面,Cocoa 的工作方式似乎与 Java 库类似:日期是无区域时间戳。时区属于显示日期的格式化范围。换句话说,内部格式不考虑时区,全部采用UTC。时区对于人类来说相对来说比较方便,因此位于显示/解析端。

我注意到有一个 setTimeZone: methodNSDateFormatter上。在执行格式化之前尝试在格式化程序上调用它。

关于iphone - 处理 Cocoa 中的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com