对时间戳的理解

2024-07-31 08:02:44 浏览数 (2)

时间戳

时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字,叫时间戳

在计算机中,「时间戳」一般是指 Unix 时间戳,即自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。

时区

时间戳 在地球的每一个角落都是相同的,但是在相同的时间点会有不同的表达方式,所以有了另外一个时间概念,叫时区

参考: 三句话理解时区与时间戳

时间戳 是不会跟着 时区 的改变而改变

代码语言:java复制
ZonedDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME));
// 于2024-07-30T15:00:20.1085551 08:00[Asia/Shanghai]执行如下代码

System.currentTimeMillis());                                             // 1722322820115

new Date().getTime());                                                   // 1722322820115

Instant.now().toEpochMilli());                                           // 1722322820113
Instant.now().atZone(ZoneOffset.UTC).toEpochSecond());                   // 1722322820
Instant.now().atZone(ZoneId.of("Asia/Tokyo")).toEpochSecond());          // 1722322820

ZonedDateTime.now().toEpochSecond());                                    // 1722322820
ZonedDateTime.now(ZoneOffset.UTC).toEpochSecond());                      // 1722322820
ZonedDateTime.now(ZoneId.of("Asia/Tokyo")).toEpochSecond());             // 1722322820
ZonedDateTime.now(ZoneId.of("Asia/Shanghai")).toEpochSecond());          // 1722322820

OffsetDateTime.now().toEpochSecond());                                    // 1722322820
OffsetDateTime.now(ZoneOffset.UTC).toEpochSecond());                      // 1722322820
OffsetDateTime.now(ZoneId.of("Asia/Tokyo")).toEpochSecond());             // 1722322820
OffsetDateTime.now(ZoneId.of("Asia/Shanghai")).toEpochSecond());          // 1722322820

0 人点赞