java java.util.date_java.util.Date:七天前

从现在开始:

long DAY_IN_MS = 1000 * 60 * 60 * 24;

new Date(System.currentTimeMillis() - (7 * DAY_IN_MS))

从任意日期日期:

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

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

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

对于受夏令时影响的人士,如果是早于7天前的话,则表示如果现在是2010年3月14日中午12点,那么您希望在2010年3月7日下午12点之前计算7天的时间,然后小心.

此解决方案查找日期/时间正好24小时* 7天= 168小时前.

然而,有些人感到惊讶,当这个解决方案发现,例如(2010年3月14日下午1点) – 7 * DAY_IN_MS可能会返回结果(2010年3月7日中午12:00),您所在时区的挂钟时间是在两个日期/时间(下午1点到12点)之间是相同的.这是由于当天晚上开始或结束的夏令时,“挂钟时间”丢失或获得一小时.

如果DST不是您的一个因素,或者如果您确实想要(168小时)(无论挂钟时间如何变化),则此解决方案都可以正常运行.

否则,您可能需要补偿当您7天前并不意味着168小时(由于DST在该时间段内开始或结束).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值