【问题标题】:Subtract java.util.Date with Integer [duplicate]用整数减去 java.util.Date [重复]
【发布时间】:2021-01-05 11:52:30
【问题描述】:

我需要从数据库中删除一些记录。在表中,我有一列包含日期(java.util.Date)记录。例如,我需要从表中获取早于 x 小时的行。我的函数有一个值得几秒钟的 int Y。我需要做类似的东西。 Date (currentDate) - Y。然后进行查询,我将该列与计算进行比较。有什么建议吗?

【问题讨论】:

  • SQL 语法会略有不同,具体取决于您使用的关系数据库。
  • 是哈娜。我尝试使用此条件“
  • 可能是这样的? stackoverflow.com/questions/18726873/… 另外我认为你现在不应该使用 java.util.Date 和 Calendar,你应该使用新的 Time Api,例如 LocalDateTime、LocalDate 等。这些类有自己的时间加减实现。
  • 请提供更多信息。你已经尝试过什么?
  • 如果你使用来自 java.time 的LocalDateTime,这很容易。

标签: java database date


【解决方案1】:

首先,如果您使用 java 8 或更高版本,我强烈建议不要使用过时的类 java.util.Date 并切换到包 java.time。您可以使用ZonedDateTime 类或其任何“兄弟”类,例如LocalDateTime 或其他类。

但是,在这里回答您的问题是如何从 Date 类中构造秒数:

Date date = new Date(); //Current date
long seconds = 100L; // 100 seconds to substruct
date.setTime(date.getTime() - seconds * 1000); //convert seconds to milliseconds and substruct it from current value of date

【讨论】:

  • 我解决了,我在下面发布了如何。非常感谢您的关注!
【解决方案2】:

我用这个函数解决了这个问题。我希望对某人有所帮助。

private Date calculateTheDate(final int seconds){

    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.SECOND, - seconds);

    return calendar.getTime();
}

【讨论】:

  • 您找到了老式且糟糕的解决方案。我不推荐它。我建议没有人应该使用它。不过,感谢您发布您找到的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 2013-11-08
相关资源
最近更新 更多