Java 8 - 如何获得 24 小时前的 java.sql.Timestamp?
Java 8 - How do I get a java.sql.Timestamp that is 24 hours ago?
如何获取代表 24 小时前的 java.sql.Timestamp?我正在通过 Scala 使用 JDK 8。
如果您使用的是 Java 1.8,则非常简单:
Instant instant = Instant.now().minus(24, ChronoUnit.HOURS);
Timestamp timestamp = Timestamp.from(instant);
您可以使用 now()
的重载来接受 Clock
以更加易于测试(因此您可以使用假时钟而不是系统时钟进行测试)。您可能还需要静态导入 ChronoUnit.HOURS
以提高可读性 - 即 Instant.now().minus(24, HOURS)
.
请注意,这恰好是过去的 24 小时 - 而不是 "the same local time, but yesterday"。
如何获取代表 24 小时前的 java.sql.Timestamp?我正在通过 Scala 使用 JDK 8。
如果您使用的是 Java 1.8,则非常简单:
Instant instant = Instant.now().minus(24, ChronoUnit.HOURS);
Timestamp timestamp = Timestamp.from(instant);
您可以使用 now()
的重载来接受 Clock
以更加易于测试(因此您可以使用假时钟而不是系统时钟进行测试)。您可能还需要静态导入 ChronoUnit.HOURS
以提高可读性 - 即 Instant.now().minus(24, HOURS)
.
请注意,这恰好是过去的 24 小时 - 而不是 "the same local time, but yesterday"。