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

java.util.Date:7天前

宗政海
2023-03-14
问题内容

我在Jasper Reports中创建了一个报告,该报告仅识别java.util.Date(不是Calendar或Gregorian等)。

有没有办法在当前日期之前7天创建日期?

理想情况下,它看起来像这样:

new Date(New Date() - 7)

更新:我对此不够强调:JasperReports无法识别Java Calendar对象。


问题答案:

从现在开始:

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 Mar 2010,你想要的计算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日期/时间之间的相同(1pmVS
12pm)。这是由于当天晚上开始或结束的夏令时以及“挂钟时间”损失或增加了一个小时。

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

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



 类似资料:
  • 问题内容: 我试图计算两个日期之间的差额,但我注意到一件事。仅计算日期时,间隔中包括夏令时的开始,因此结果将缩短1天。 为了获得准确的结果,还必须考虑小时数。 例如: 输出: 有人有更好的解决方案吗? 问题答案: 哦,是的,有更好的解决方案! 停止使用过时的类,并使用Java 8及更高版本(教程)中内置的java.time API的功能 。具体而言,,,和类。

  • 问题内容: 我在这里阅读了一些帖子,似乎没什么特别的,但是我仍然不能选择最后几天的条目。 如果我在今天和过去7天之间添加,则我的代码将不会输出任何内容。 问题答案: 该子句放错了位置,它必须遵循表引用和JOIN操作。 像这样: 编辑 (三三年后) 上面的内容基本上回答了以下问题:“我试图在查询中添加WHERE子句,但现在查询返回错误,我该如何解决?” 关于写一个检查“过去7天”日期范围的条件的问题

  • 问题内容: 我需要找到当天创建的帐户,以及最近7天创建的帐户。 为了找到今天的结果,它可以正常工作,我可以这样做: 但是我不知道如何获得最近的7天帐户。 我尝试了类似的方法,但是没有成功: 你有主意吗? 问题答案: 在mysql中:

  • 本文向大家介绍PHP实现采集中国天气网未来7天天气,包括了PHP实现采集中国天气网未来7天天气的使用技巧和注意事项,需要的朋友参考一下 前言 我们在写一个Web程序的时候,总会想着把自己的网站更美观一些,功能能更多一些,有时候写一些小的工具或者加上小的插件会让我们的站点更加完善。比如万年历功能,比如我们现在要讲的天气预报功能。 当然我们没法利用专业的卫星接受数据,所以我们的天气数据来自现有的天气预

  • 问题内容: 我的网站的命中SQL表格名为ExternalHits。我将URL跟踪为URLx,将访问页面的日期跟踪为Datex。我每周运行一次此查询,以获取前一周的总点击数,并且每周我都必须手动更改“之间”的日期。有什么方法可以更改查询,以使“之间”的日期类似于TODAY AND TODAY-7?我只是不想不必每周手动更改日期。 问题答案:

  • 问题内容: 我在Java中遇到以下问题(我看到有些人在JavaScript中也遇到了类似的问题,但我正在使用Java) 退货 我不知道我认为应该是2012年的112位。这是怎么回事?该 课程不可用吗?我将其作为字段存储在我的几个班级中,以存储日期和时间。我该怎么办? 问题答案: 根据javadocs: 不推荐使用 。从JDK 1.1版开始,由取代。 返回一个值,该值是从包含或由此日期对象表示的时间