我正在尝试进行简单的日期/时间计算,但无论我做什么,我都会对时区等内容感到困惑。
我需要将不同的日期/时间相加(和相减),所以我认为最简单的方法是将它们转换为秒数,执行计算,然后再格式化回字符串。但无论我做什么,我都会有一个小时的时间 - 这听起来像是时区/夏令时等。
这有什么问题:
long dateInMillis = 3600000L;
DateFormat formatter = new SimpleDateFormat("HH:mm");
Date dt = new Date();
dt.setTime(dateInMillis);
System.out.println( formatter.format(dt.getTime()));
我得到的答案是 2:00。即使我使用:
long dateInMillis = 1;
我还有 1:00
请帮忙;-)
TIA 马丁
最佳答案
我同意使用 Joda 可能会让生活更轻松。但是,您看到的是时区敏感格式化程序的效果。
您可以尝试添加:
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
关于java - 在 Java 中执行日期和时间计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517332/