【发布时间】:2017-03-13 15:51:42
【问题描述】:
我必须检查日期变量是否在特定时间之前。该变量的格式为 dd.MM.yyyy HH:mm:ss。
让我们以今天的日期 31.10.2016 15:20:45 为例。变量的值为 30.10.2016 14:00:21。我现在如何检查变量是否比今天早一天以及时间是否早于或等于 23:00?
我尝试了以下代码。
Date today = new Date();
Calendar c = Calendar.getInstance();
c.setTime(causedAt);
c.add(Calendar.DATE, 1);
if (c.getTime().compareTo(today) < 0) { // It's more than 1 day.
setOneDayOverdue(true);
setFiveDaysOverdue(false);
}
但是使用此代码,缺少时间的部分。
该解决方案应适用于 Java 7,并且无需任何外部库(如 Joda-Time)。
【问题讨论】:
-
有很多方法可以做到这一点。你试过什么?我建议使用 SimpleDataFormat 将您的日期字符串解析为 Date 对象。然后您可以使用 compareTo() 方法将其与今天的日期进行比较。
-
@jgitter 我尝试了以下代码。今天的日期 = new Date();日历 c = Calendar.getInstance(); c.setTime(causedAt); c.add(日历.DATE, 1); if (c.getTime().compareTo(today)
-
最好用这些信息更新问题。
-
“时间部分丢失”是什么意思? Java 日期对象只是从纪元开始的长毫秒的包装器,因此您的时间值包含在其中。你想完成什么?