java - 从差异/减去两个期间(具有负时间)创建新日期

标签 java date time timezone

我想减去 2 个日期并保存差值:

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
Date a = formatter.parse("08:06");
Date b = formatter.parse("08:00");
Date asd =  new Date(a.getTime() - b.getTime());

问题是 asd 不是 00:06,而是 01:06(Thu Jan 01 01:06:00 CET 1970),我认为这取决于时区。但是我该如何解决呢?我应该更改 jvm 时区吗?

最佳答案

注意 Date(long) constructor 的 javadoc

Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.

这不是间隔。

Joda-Time确实提供了 Interval类来执行此类计算。 Java 8 也应该有 such a class什么时候出来。

关于java - 从差异/减去两个期间(具有负时间)创建新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22439322/

相关文章:

java - 使用 AIR 代码实现原生 Android 代码

java - 缓慢构建路径列表

Java正则表达式。获取某些关键字之间的子字符串

MySQL时间日期查询问题

c# - 生成日期时间(exp:09.02.2009)到字符串日期(exp:Monday)

swift - 在 SpriteKit GameScene 中创建用于执行事件和更新变量的通用计时器

php - mysql日期显示结果今天/昨天/周

java - 如何在 jackson 中指定反序列化顺序?

javascript - 将文本框的值放入另一个文本框

parsing - 如何正确解析时区代码