我需要将 UTC 的纪元时间转换为不同时区的纪元时间。示例:以UTC格式1389556017000为美国/蒂华纳时区的纪元时间。
public static void main(String[] args) {
Long epoch_date = 1389556017000L;
ZonedDateTime date1= Instant.ofEpochMilli(epoch_date)
.atZone(ZoneId.of("America/Tijuana"));
long epoch_second = date1.toInstant().toEpochMilli();
System.out.println("Epoch time in new timezone is :" + epoch_second);
}
我的输出与输入相同...
纪元时间是一个绝对的时间点。它与任何时区无关。
例如 - 印度的下午 6:30 与英格兰的下午 1:00 相同。两个时代的纪元是相同的。
您可以在 - https://en.wikipedia.org/wiki/Epoch 阅读更多信息
2014-01-12T11:46:57-08:00 和 2014-01-12T19:46:57Z 是同一时间(称为 T1(。
1970-01-01T00:00:00Z(即纪元的开始(和1969-12-31T16:00:00-08:00(称为T0(是同一时间。
时间在内部存储为T0和所讨论时间之间的秒数,毫秒数。
对于 T1 和 T0 之间的秒数,毫秒数,无论什么,只有一个答案。