我最近面临着从Java中的两个日期计算天数的问题(我没有使用joda,恐怕)。在网上搜索显示,这个问题的大部分答案都是为了获得这两天的毫秒数,并将其转换为几天,这让我感到震惊。然而,少数人表现出不同的方法:使用一个临时变量来计算需要多少次,在第一天添加1天才能到达第二天。这将转换转换为最擅长的代码:库。为什么在Java中使用毫秒进行日期操作?
为什么这么多人主张第一?
在另一个项目中,我以前遇到过许多细微日期计算问题,涉及时区,夏令时和甚至闰年,使用秒进行日期比较和计算。当全部比较和计算代码被重新使用语言库时,所有这些都消失了。 (虽然这是用PHP编写的,但是这些库的结构与Java完全不同)。所以我可以理解地不愿意在Java的世界中使用这种“常见智慧”来比较日期。
我原来说过很多相同的事情。问题是,我认为格里高利的不连续性,甚至是闰秒(第一个完全没有关系,第二个只关系到相当专业的软件),但是错过了更紧迫的担心,即某些日子有23个小时,有些日子有25.(夏令时问题。)基本上,它只是杀死它。感谢@jambjo指出这一点。 – 2011-01-07 21:24:55
@ T.J .:你的观点是完全有效的。不过,我认为我以不同的方式解释了这个问题。我把这个问题看成是问为什么有这么多的建议来这样做。这种方法绝不会比乔达时代更好,除了极其简单。此外,它是** jarnbjo **(谢谢,结绳!):) – 2011-01-07 22:23:01