在我的应用程序中,我只是将当前日期获取为:
[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
对象)可以与 NSDate
和 NSCalendar
对象结合使用,然后可以由 NSDateFormatter
格式化显示。
您可能还想查看 [NSLocale systemLocale]
及其同级方法,以获取有关 iOS 如何处理区域设置更改的更多信息。
有关日期和时间编程的重要资源是 Apple 的 Date and Time Programming Guide
关于ios - NSDate 会根据设备的当前位置发生变化吗?还是独立的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23402964/