我在数据库中获取两个日期时间对象。我需要在没有秒的情况下进行比较。
日期 1 值:2018-05-25T13:55:24.000+05:30 日期 2 值:2018-05-31T08:31:00.000+05:30
我需要检查日期 1 是否晚于日期 2。
if(Checks.checkNotNull(dateTime) && (partiallyInvalidateDate.isAfter(dateTime))){
code = null;
}
但我需要在没有第二部分的情况下进行上述比较。需要一些专家的帮助才能做到这一点。
最佳答案
假设您从 java.sql.ResultSet
获取日期时间作为 java.sql.Timestamp
,您可以直接在这些对象上设置秒和纳秒,然后进行比较与 after
(尽管您会在 setSeconds
上收到已弃用的警告)。使用模拟时间戳进行测试:
import java.sql.Timestamp;
public class TestTimestamp {
public static void main(String []args){
Timestamp ts1 = Timestamp.valueOf("2011-12-25 11:12:13");
Timestamp ts2 = Timestamp.valueOf("2011-12-25 11:12:14");
ts1.setSeconds(0);
ts1.setNanos(0);
ts2.setSeconds(0);
ts2.setNanos(0);
System.out.println(ts1);
System.out.println(ts2);
//should print false since they're now identical
System.out.println(ts2.after(ts1));
}
}
如果您需要使用 LocalDateTime,请执行以下操作:
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class Test{
public static void main(String []args){
Timestamp ts1 = Timestamp.valueOf("2011-12-25 11:12:13");
Timestamp ts2 = Timestamp.valueOf("2011-12-25 11:12:14");
LocalDateTime dt1 = ts1.toLocalDateTime().truncatedTo(ChronoUnit.MINUTES);
LocalDateTime dt2 = ts2.toLocalDateTime().truncatedTo(ChronoUnit.MINUTES);
System.out.println(dt1);
System.out.println(dt2);
//should print false since they're now identical
System.out.println(dt2.isAfter(dt1));
}
}
关于java - 需要比较没有秒的日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50616673/