我被这个浏览了 746000 次的问题惊住了!
给大家分享一个我最近发现的有点意思,但是卵用不大的小知识点。
先给你搞个程序看一下:
public class MainTest {
public static void main(String[] args) throws Exception {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse("1900-01-01 08:00:00");
System.out.println(simpleDateFormat.format(date));
}
}
你说上面的程序逻辑就是一个简单的时间格式化,你说输出结果是什么?
1900-01-01 08:00:00
1900-01-01 08:05:43
https://bugs.openjdk.java.net/browse/JDK-8266262
https://www.timeanddate.com/time/zone/china/shanghai?year=1900
The timezone offset was UTC +8:05:43 hours all of the period.
https://stackoverflow.com/questions/6841333/why-is-subtracting-these-two-times-in-1927-giving-a-strange-result
String str3 = "1927-12-31 23:54:07";
String str4 = "1927-12-31 23:54:08";
public static void main(String[] args) throws ParseException {
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str3 = "1927-12-31 23:54:07";
String str4 = "1927-12-31 23:54:08";
Date sDt3 = sf.parse(str3);
Date sDt4 = sf.parse(str4);
long ld3 = sDt3.getTime() /1000;
long ld4 = sDt4.getTime() /1000;
System.out.println(ld4-ld3);
}
No further time changes in 1927 in Shanghai
https://coolshell.cn/articles/5075.html/comment-page-2#comments
在1927年12月31日23:59:59时,往后面的一秒应该是1928年1月1日 0:0:0,但是这个时间被往后调整了5分52秒,而成了,1927年12月31日的,23:54:08,于是,完成了352秒的穿越。
https://www.iana.org/time-zones
https://bugs.openjdk.java.net/browse/JDK-6281408
https://zh.wikipedia.org/wiki/%E4%B8%AD%E5%9C%8B%E6%99%82%E5%8D%80
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
评论