如何在 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);
更新:正如史蒂夫所说,如果您在此处提供的日期假定第二个日期是相对于 Java 纪元的,则此方法有效。如果您确实想从“0”年开始,那么您需要考虑到这一点(通过减去您的纪元时间)。
关于java - 在 Java 中对两个日期求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067657/