我正在创建要发送到服务器的对象,并试图确保考虑到时区和夏时制问题,因此我希望我的时间戳是“自1970年以来的秒数”,而不考虑时区等。

[NSDate timeintervalSinceReferenceDate]是否足以满足要求?在文档中,我知道它说从January 1 1970 00:00:00 GMT开始的时间,这是我想要的,但是NSDate如何处理时区?如果用户发送设备设置为EST的对象,然后将其设备更改为PST,则这将对时间戳产生什么影响?我的目标是做到这一点没有什么区别,我似乎无法从文档中了解到这一点。

日期编程是一个棘手的问题,我想确保正确无误。

最佳答案

文档说timeIntervalSinceReferenceDate给出从2001年开始的时间。timeIntervalSince1970返回从1970年开始的时间。

但是,无论哪种方式,NSDate都描述了一个时间点。用户的时区仅影响日期显示给用户的方式(例如,通过NSDateFormatter)。因此,您不必担心时区。

但是也许您确实需要担心用户的时钟错误。用户可以将时钟设置为他们想要的任何时钟,因此对于任何关键任务,您都不应该相信它。请改用服务器时钟。

10-08 05:47
查看更多