我做了实验
for (String tz: TimeZone.getAvailableIDs()) {
TimeZone.setDefault(TimeZone.getTimeZone(tz));
timestamp = Timestamp.valueOf("1970-01-01 00:00:00.000");
System.out.println(tz + " - " + timestamp.getTime());
}
意外地每个时区的结果都不同。这背后的逻辑是什么?一直认为时间戳是时区独立的。
答案 0 :(得分:0)
因为Timestamp使用UTC TimeZone,如果你改变Timezone它会有所不同,即在伦敦时是1970-01-01 00:00:00.000(GMT + 1)在西班牙加那利群岛是1969-12-31 23: 00:00.000(GMT)
*编辑:在大多数情况下,UTC被视为可与GMT互换