如何检查日期和时间戳是在 20 分钟之前
How to check the date and timestamp is before 20mins
我正在使用 Java8。在我的一项网络服务中,我得到这样的日期格式:2017-10-17T04:11:51+00:00
.
我想测试时间戳是否是20分钟前。为此,我编写了以下代码,但它不起作用:
Long minutesAgo = new Long(20);
String lastDate = "2017-10-17T04:11:51+00:00";
OffsetDateTime odt = OffsetDateTime.parse(lastDate);
Instant instant = odt.toInstant(); // Instant is always in UTC.
java.util.Date date = java.util.Date.from( instant );
Date dateIn_X_MinAgo = new Date (date.getTime() - minutesAgo*60*1000);
System.out.println(dateIn_X_MinAgo.getTime()); //It prints 1508212311000
有人可以看看我的代码吗?
您正在使用新的 java.time
API(OffsetDateTime
和 Instant
),因此无需将其与旧的 java.util.Date
混合使用class.
您可以使用 java.time.temporal.ChronoUnit
获取 2 个瞬间之间的分钟差值,并使用 Instant.now()
获取当前瞬间:
String lastDate = "2017-10-17T04:11:51+00:00";
OffsetDateTime odt = OffsetDateTime.parse(lastDate);
// get difference from now (in minutes)
long diff = ChronoUnit.MINUTES.between(odt.toInstant(), Instant.now());
if (diff > 20) {
// odt is more than 20 minutes ago
}
我正在使用 Java8。在我的一项网络服务中,我得到这样的日期格式:2017-10-17T04:11:51+00:00
.
我想测试时间戳是否是20分钟前。为此,我编写了以下代码,但它不起作用:
Long minutesAgo = new Long(20);
String lastDate = "2017-10-17T04:11:51+00:00";
OffsetDateTime odt = OffsetDateTime.parse(lastDate);
Instant instant = odt.toInstant(); // Instant is always in UTC.
java.util.Date date = java.util.Date.from( instant );
Date dateIn_X_MinAgo = new Date (date.getTime() - minutesAgo*60*1000);
System.out.println(dateIn_X_MinAgo.getTime()); //It prints 1508212311000
有人可以看看我的代码吗?
您正在使用新的 java.time
API(OffsetDateTime
和 Instant
),因此无需将其与旧的 java.util.Date
混合使用class.
您可以使用 java.time.temporal.ChronoUnit
获取 2 个瞬间之间的分钟差值,并使用 Instant.now()
获取当前瞬间:
String lastDate = "2017-10-17T04:11:51+00:00";
OffsetDateTime odt = OffsetDateTime.parse(lastDate);
// get difference from now (in minutes)
long diff = ChronoUnit.MINUTES.between(odt.toInstant(), Instant.now());
if (diff > 20) {
// odt is more than 20 minutes ago
}