NSDate时区问题

作者: 十三楼的大笨象 | 来源:发表于2022-08-08 16:45 被阅读0次
  • UTC介绍

iOS是用UTC表示时区的。UTC是协调世界时,又称世界统一时间、时间标准时间、国际协调时间。协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。UTC不属于任何时区,但是其他地区时间的表示可以跟时区挂钩,比如中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚的时间与UTC的时差均为+8,也就是UTC+8

  • 测试情况

先看截图

测试情况
  • 可以看到通过断点的结果[NSDate date]是用 UTC表示的,与北京时间相差8个小时,但是通过NSDateFormatter转为字符串后,跟北京时间是一样的。说明系统在通过NSDateFormatter把NSDate类型转成字符串时,帮我们转为成了当前时区的时间。
  • 将字符串通过NSDateFormatter转成NSDate之后,系统又帮我们把时间减去了8个小时,变成了UTC表示。
  • 而通过NSLog打印的NSDate类型与当前时区时间是相等的。
  • 结论:

我们在一般情况下做时间显示或者比较时不需要自己对时间时区做处理,是因为系统默认帮我们做了处理。

相关文章

  • NSDate 时区问题

    https://blog.csdn.net/sqc3375177/article/details/53608867

  • NSDate时区问题

    (1) NSDate *date = [NSDate date];或者NSDate *date1 = [[N...

  • NSDate时区问题

    UTC介绍 iOS是用UTC表示时区的。UTC是协调世界时,又称世界统一时间、时间标准时间、国际协调时间。协调世界...

  • NSDate

    NSDate *date = [NSDate date]; //获取当前0时区时间 NSDate *date = ...

  • NSSting 与 NSDate 时间戳 恩怨情仇

    NSSting 转 NSDate NSDate 转 NSString 获取本地 NSDate 时区转换 NSDat...

  • 论NSDate 时区问题

    +date 初始化一个date 类,或者用这个方法获取到的date都是零时区的标准时间,当你用NSDateForm...

  • NSDate时区转换

    1. 获取系统时区的NSDate对象 打印[NSDate date]得到的是GTM时区对应的时间也就是0时区:20...

  • 8小时时差问题

    //[NSDate date]获取的是GMT时间,下面获得某个时区的系统时间+(NSDate *)getNowDa...

  • NSDate用法

    创建//获取到的是当前时间 格林尼治 时间 +0000 表示0时区NSDate *date1 = [NSDate...

  • iOS官方文档 Foundation篇---NSDate

    NSDate 表示特定时间点,与任何日历或时区无关; 继承自NSObject; NSDate对象封装一个时间点,独...

网友评论

    本文标题:NSDate时区问题

    本文链接:https://www.haomeiwen.com/subject/ukiwwrtx.html