当前位置: 首页 > 面试题库 >

用Java对两个日期求和

蔺霄
2023-03-14
问题内容

如何在Java中添加两个日期?

示例:“ 2010-01-14 19:16:17”和“ 0000-10-03 01:10:05”的总和
将得出“ 2010-11-17 20:26:22”。

我知道如何使用日历并逐字段添加字段。

是否有其他方法可以一次汇总所有数据(年/月/日/小时/分钟/秒)?


问题答案:

如果使用的是Date对象,则可以执行以下操作:

Date d1 = ...
Date d2 = ...

long sum = d1.getTime() + d2.getTime();

Date sumDate = new Date(sum);

该代码使用的.getTime()方法返回自纪元以来的毫秒数。不用说该Date课程有很多问题,应尽可能避免。

您是否想对其他类型求和?

更新:对于Calendar,我将执行以下操作(基于javadocs):

Calendar c1 = ...
Calendar c2 = ...
long sum = c1.getTimeInMillis() + c2.getTimeInMillis();
Calendar sumCalendar = (Calendar)c1.clone();
sumCalendar.setTimeInMillis(sum);

更新:如Steve所述,如果您在此处显示的日期假定第二个日期是相对于Java纪元的,则此方法有效。如果您确实想从“
0”年开始,那么您需要考虑这一点(减去纪元时间)。



 类似资料:
  • 问题内容: 我需要在Java中比较两个日期。我正在使用这样的代码: 这是行不通的。变量的内容如下: 包含 包含 我该如何解决? 问题答案: 日期相等性取决于两个等于毫秒的日期。使用创建新的Date对象将永远不会等于过去创建的日期。Joda Time 的API简化了日期的处理。但是,仅使用Java的SDK:

  • 我想计算2个月之间的差异,我不想考虑一个月是30天,并且以毫秒的时间来转换它们,我不想使用像焦达这样的库,我也找到了一个使用LoalDead的解决方案,但是我使用的是java 7。我寻找我的问题的答案,但找不到任何答案,我尝试了许多方法,我尝试创建一个日历,并以毫秒为单位传递我的两个日期之间的差异,但如果我尝试获取15/04和15/5之间的差异,我将得到30天,而不是1个月,下面是代码 我可以用什

  • 问题内容: 有人可以建议一种使用JavaScript 比较 两个 大于,小于和过去的 日期 的值的方法吗?这些值将来自文本框。 问题答案: 该Date对象会做你想要的东西- 构造一个每个日期,然后用它们进行比较,,或。 在,,,和运营商要求使用作为 要清楚的是,仅直接检查日期对象是否相等将不起作用 我建议您使用下拉列表或日期输入的某些类似约束形式,而不要使用文本框,以免您陷入输入验证的困境。

  • 问题内容: 我正在从一个字符串中解析两个日期,如下所示: 我需要做的是找出这两个日期之间的区别,例如: = 8天2小时36分钟21秒 ^这是我需要的两个日期/时间 我相信我需要解析格式并将其转换为另一种格式,然后减去两者之间的差并进行数学运算以得出之间的天/小时/分钟/秒 问题答案: 与其他回答者试图暗示的相反,在标准Java SE中,计算两个日期之间的差异并不是那么简单。 您的第一步确实是将这些

  • 结果应该是-1或1的int值,其中我的情况应该是:-1。 然而,这不是我想要的结果。我想能够比较日期直接说: 是否有一些基于日历库来实现这一点的方法?