ios - NSDate 会根据设备的当前位置发生变化吗?还是独立的?

标签 ios nsdate

在我的应用程序中,我只是将当前日期获取为:

[NSDate date];

那么,基于时区,它会有所不同吗?因此,设备位置设置为澳大利亚的 2015 年 1 月 1 日,美国日期仍为 2014 年?

最佳答案

不,您上面的示例将产生一个与 GMT 时区有绝对偏移的时间,并且不会根据设备的当前位置而改变,它是独立的。

NSDate 的实例不包含任何时区信息。它本质上是 2001 年 1 月 1 日的偏移量。

来自 Apple 的 NSDate 文档:

NSDate objects represent a single point in time.

后面会提到

... the absolute reference date used by NSDate (the first instance of 1 January 2001, GMT).

时区(或 NSTimezone 对象)可以与 NSDateNSCalendar 对象结合使用,然后可以由 NSDateFormatter 格式化显示。

您可能还想查看 [NSLocale systemLocale] 及其同级方法,以获取有关 iOS 如何处理区域设置更改的更多信息。

有关日期和时间编程的重要资源是 Apple 的 Date and Time Programming Guide

关于ios - NSDate 会根据设备的当前位置发生变化吗?还是独立的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402964/

相关文章:

ios - UIButton 位于 View 顶部且 userInteractionEnabled=NO

ios - 将时间字符串转换为日期并找到即将到来的日期

objective-c - 这个日期是什么格式?

ios - 将日期转换为具有不同日期格式 ios 的字符串?

ios - MDM 可以在 iOS 中发送警报和声音通知吗?

iphone - 使用社交框架将图像添加到 Facebook

iphone - 视网膜显示核心图形字体质量

ios - NSDate 到 RFC 2822 日期格式

ios - 来自字符串的 NSDate 和时间

ios - 如何在没有 prepareForSegue 的情况下在 Swift 文件之间传递数据?