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://www.haomeiwen.com/subject/ukiwwrtx.html