日期与时间

时区Java 标准库提供了两套处理日期和时间的API:

  • 一套定义在java.util这个包里,主要包括DateCalendarTimeZone这几个类。

  • 一套新的 API 是在 Java8 中引入的,定义在java.time这个包里,主要包括LocalDateTimeZoneDateTimeZoneld等。

本地时间

我们常说的当前时刻是2019年11月20日早上8:15的时候,我们说的实际上是本地时间,在国内就是北京时间。在这个时刻,地球上不同地方的本地使时间是不同的:

不同的时区,在同一时刻,本地时间是不同的。全球一共分为24个时区,伦敦所在的时区为标准时区,其他时区按东/西偏移的小时区分,北京所在的时区是东八区。

时区

光靠本地时间还无法唯一确定一个准确的时刻,我们还需要给时间加上一个时区。时区有好几种表示方式

一种是以 GMT 或者 UTC 加时区偏移表示,例如:北京时间GMT+08:00或者UTC+08:00表示东八区。

另一种是缩写,例如,CST 表示中国标准时间,CST 也可以表示美国中部时间,因此,缩写容易产生混淆,我们尽量避免使用缩写来表示时区。

最后一种是以洲/城市表示,例如,Asia/Shanghai,表示上海所在地的时区。特别注意城市名称不是任意的城市,而是由国际标准组织规定的城市。

本地时间

在计算机中,通过用Locale表示一个国家或地区的日期、数字、货币等格式。Locale由语言国家的字母缩写构成,例如zh_CN表示中文_中国,语言使用小写,国家使用大写。

对于日期来说,不同的地区有不同的表示方法,例如:

  • zh_CN2016-11-30

  • en_US11/30/2016

最后更新于

这有帮助吗?