如果他们同时执行此操作,在美国执行此操作的人会看到与在美国执行此操作的人相同的数字吗?
文档说,时间从格林威治标准时间 2001 年 1 月 1 日开始。这意味着它是从 GreenWitch 到 1 月 1 日的时间。
然而,每个人都会看到不同的时钟。所以这意味着它是本地化的。
所以是模棱两可的。哪一个是对的?
如果他们同时执行此操作,在美国执行此操作的人会看到与在美国执行此操作的人相同的数字吗?
文档说,时间从格林威治标准时间 2001 年 1 月 1 日开始。这意味着它是从 GreenWitch 到 1 月 1 日的时间。
然而,每个人都会看到不同的时钟。所以这意味着它是本地化的。
所以是模棱两可的。哪一个是对的?
NSDate
不存储时区信息。它始终与 GMT/UTC 时间相关,这意味着您描述的两个人都会得到相同的结果。
不,根据文档:
timeIntervalSinceReferenceDate
返回值 系统的绝对参考日期(格林威治标准时间 2001 年 1 月 1 日的第一时刻)与当前日期和时间之间的间隔。
当前日期取决于本地时间 (+ (id)date)。因此,如果中国的一个人与德国的一个人同时按下按钮,则间隔会有所不同~6 小时。但在他们看来,如果他们在当地时间下午 1 点按下按钮,两者的时间间隔将是相同的。
编辑:
正如马丁指出的那样,实际上我错了:
NSDate 代表一个时间点,对时区一无所知。如果您使用 NSLog(@"%@", [NSDate date]) 显示 NSDate 的值,则日期将使用 GMT 转换为字符串以进行显示。
所以回答你的问题:是的,它会是一样的。