java.util.Date:7天前

java.util.Date:7天前,第1张

java.util.Date:7天前

从现在开始:

long DAY_IN_MS = 1000 * 60 * 60 * 24;new Date(System.currentTimeMillis() - (7 * DAY_IN_MS))

从任意

Date date

new Date(date.getTime() - (7 * DAY_IN_MS))

编辑:如其他答案所指出,如果这是一个因素,则不考虑夏令时。

只是为了澄清我在谈论的限制:

对于受日光节约时间的人 ,如果

7 days earlier
,你的意思是,如果现在的问题是
12pm noon on 14 Mar2010
,你想要的计算
7 days earlier
导致
12pm on 7 Mar 2010
,那么要小心。

该解决方案可以准确地找到日期/时间24小时* 7天= 168小时。

然而,有些人 感到惊讶 时,该解决方案发现,例如,

(14 Mar 2010 1:00pm) - 7 * DAY_IN_MS
可能会
返回一个结果
(7 Mar 2010 12:00pm)
,其中 在时区挂钟时间 不是2日期/时间之间的相同(
1pm
VS
12pm
)。这是由于当天晚上开始或结束的夏令时以及“挂钟时间”损失或增加了一个小时。

如果DST不是您要

(168 hours)
考虑的因素,或者您确实确实想要DST (无论挂钟时间的变化如何),那么此解决方案就可以正常工作。

否则,当您的时间

7 days earlier
并非真正意味着168小时(由于DST在该时间范围内开始或结束)时,您可能需要补偿。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5586848.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存