时间戳
时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字,叫时间戳。
在计算机中,「时间戳」一般是指 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