java - 在 Java 中执行日期和时间计算

标签 java date time

我正在尝试进行简单的日期/时间计算,但无论我做什么,我都会对时区等内容感到困惑。

我需要将不同的日期/时间相加(和相减),所以我认为最简单的方法是将它们转换为秒数,执行计算,然后再格式化回字符串。但无论我做什么,我都会有一个小时的时间 - 这听起来像是时区/夏令时等。

这有什么问题:

 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/

相关文章:

javascript - JavaScript 中的 getYear() 返回 118

c - linux timeval gettimeofday printf 错误

java - Spring mvc 的 log4j 1.2 配置问题

java - 从 DatePickerDialog 设置日期的好习惯?

java - 用非常简单的术语来说,Groovy/Grails/Hibernate/JBoss/Jade 是什么?

Java 7 SimpleDateformat 滥用或问题?

c - 如何使 C 计时器在 Linux 中的特定系统时间到期

java - System.currentTimeMillis() 是一个不错的选择吗?

java - 在 Java 8 中将对象附加到列表并返回结果?

java - 删除 ASCII 颜色代码