关于日期、时间以及时区

2019-12-20  本文已影响0人  钦_79f7

UTC

协调世界时,又称世界标准时间或者世界协调时间,简称UTC(Coordinated Universal Time)。其以原子时长为基础,在时刻上尽量接近于格林尼治标准时间。

子午线

本初子午线:Prime meridian,即0度经线,亦称格林威治子午线、格林尼治子午线或者本初经线,是经过英国格林尼治天文台的一条经线(亦称子午线)

开发中的应用

在开发中,时常会遇到关于时间、日期、日历等的逻辑处理,这时可能就会遇到一些比较莫名的问题。

比如根据UTC时间戳转化为日期时间格式,可能会有不同的结果,或者转化出的结果不是自己预期的,这其中就涉及到了时区的概念。

一些系统方法提供的格式转换(例如:iOS开发语言swift),是基于子午线的时区转换出来的时间格式,而中国属于东八区,所以这个转换出来的时间可能与你的预期正好差了8个小时。

在Android或Java开发中有时也会遇到类似的问题,不过当APP的用户仅仅局限于国内时,可能不会暴露的那么明显。因为在Java的默认方法中针对时区的处理,会默认采用当前地区的时区作为基准,来自动转换不同地区对应的不同时区。但是这样并不是那么的严谨,或者当前APP仅仅服务于国内用户时,那么由于用户手机时区设置了非中国时区(东八区),那么就会导致转换时出现非预期结果。

这时,就用到了Locale、TimeZone类,可以通过硬编码当前时区,使得转换结果脱离手机系统设置。

国内就是对应着Locale.CHINA

一般需要用到时区处理的类:

上一篇 下一篇

猜你喜欢

热点阅读