时间戳、时间、时区的理解
时间戳(s)
以格林威治地区1970-01-01 00:00:00为基准每过一秒加1s得到的一个数值,例如:1703213612
全世界某个时刻的时间戳都是一样的,例如北京时间2023-12-22 10:53:32这个时刻,utc对应时间是2023-12-22 02:53:32,他们的时间戳都是1703213612
示例:
此刻在世界上任何一个地方执行
System.currentTimeMillis();
得到的时间戳都是同一个
时间
就是我们日常看到的北京时间,,全球同一时刻不同时区的看到的时间不同
时区
全球分为24个时区,从-12 到+12,中国在+8区
时间戳转时间
根据上面介绍我们知道时间戳对应的某个时刻,要转换成你的时间就必须带上时区,否则默认按utc时区转换,这样就会存在时间误差。
例如:时间戳1703213612,如果按北京时间转换就是2023-12-22 10:53:32
时间转时间戳
时间转时间戳的时候也是需要指定时区,这样才会将该时间转换为所在时区对于的时间戳。
例如:
2023-12-22 10:53:32按 +8 时区转换得到1703213612
2023-12-22 10:53:32按 +9 时区转换得到1703213612 - 3600 = 1703210012,
因为+9区比+8区快一个小时,所以他只需要更小的时间戳数值(1703213612 - 3600)表示2023-12-22 10:53:32: