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

java.util.Date计算天数差异

颜熙云
2023-03-14
问题内容

我试图计算两个日期之间的差额,但我注意到一件事。仅计算日期时,间隔中包括夏令时的开始,因此结果将缩短1天。

为了获得准确的结果,还必须考虑小时数。

例如:

SimpleDateFormat format = new SimpleDateFormat("MM-dd-yyyy");
Date dfrom = format.parse("03-29-2015");
Date dto = format.parse("03-30-2015");
long diff = dto.getTime() - dfrom.getTime();
System.out.println(diff);
System.out.println("Days: "+diff / (24 * 60 * 60 * 1000));
System.out.println("Hours: "+diff / (60 * 60 * 1000) % 24);

输出:

82800000
Days: 0
Hours: 23

有人有更好的解决方案吗?


问题答案:

哦,是的,有更好的解决方案!

停止使用过时的java.util.Date类,并使用Java
8及更高版本(教程)中内置的java.time
API的功能
。具体而言,,,和类。DateTimeFormatterLocalDateChronoUnit

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM-dd-yyyy");
LocalDate date1 = LocalDate.parse("03-29-2015", formatter);
LocalDate date2 = LocalDate.parse("03-30-2015", formatter);
long days = ChronoUnit.DAYS.between(date1, date2);
System.out.println(days); // prints 1


 类似资料:
  • 问题内容: 在我的代码中,日期之间的差异是错误的,因为它应该是38天而不是8天。我该如何解决? 问题答案: 问题出在变量中。月以Capital M表示。 尝试更改为: 有关更多信息,请参见此javadoc。 编辑: 这是代码,如果您想以注释的方式打印差异: 希望对您有所帮助!

  • 问题内容: 在角度,我试图使用jQuery datepicker计算两个选定日期之间的天数。我使用的函数只返回null。 但是我不太确定它是函数还是在angular。中使用datepicker。看起来问题出在函数上,但是当我将它与jQuery一起使用时,它可以工作。 我的功能: 其余的:http : //jsfiddle.net/1mzgLywe/5/ 提前致谢! 问题答案: 这是工作中的小提琴,

  • 本文向大家介绍php计算两个日期相差天数的方法,包括了php计算两个日期相差天数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php计算两个日期相差天数的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 我在Jasper Reports中创建了一个报告,该报告仅识别java.util.Date(不是Calendar或Gregorian等)。 有没有办法在当前日期之前7天创建日期? 理想情况下,它看起来像这样: 更新:我对此不够强调:JasperReports无法识别Java Calendar对象。 问题答案: 从现在开始: 从任意: 编辑:如其他答案所指出,如果这是一个因素,则不考虑夏

  • 问题内容: 在我的程序开始和结束时, 但是,当我尝试区别时,我会遇到语法错误…。我做错了一些事情,但是我不确定发生了什么… 基本上,我只想在程序开始时将时间存储在变量中,然后将第二次时间存储在末尾的第二个变量中,然后在程序的最后一位中计算差并显示出来。我不是要为功能速度计时。我正在尝试记录用户通过某些菜单花费的时间。做这个的最好方式是什么? 问题答案: 该模块将为您完成所有工作: 如果您不想显示微

  • 我必须找出两个日期在月和天之间的区别。我尝试了谷歌,但我只发现了月份和日期的差异。 例如:2013年4月1日和2013年5月7日,那么结果应该是1个月6天。 我希望代码只使用Java6提供的api。推荐但不喜欢Joda Time和其他。谢谢你的帮助。