让我们有以下内容:
Date inDbDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
inDbDate = sdf.parse("2015-09-27 23:24:28.035");
现在,当我输出 inDbDate 时,我收到以下信息:
Sun Sep 27 23:24:28 EEST 2015
因此,如果我有两个具有毫秒差异的日期,将无法找出或显示它。
如何比较具有这种格式的两个日期 - 2015-09-27 23:24:28.035?
最佳答案
如果你想比较两个 Date 变量,有一些方法提供了 after(), before(), equals()。
private void someMethod(){
final String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
Date firstDate = new Date();
Date secondDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
try {
firstDate = sdf.parse("2015-09-27 23:24:28.035");
secondDate = sdf.parse("2015-09-27 23:24:28.036");
} catch (ParseException pe) {
pe.getMessage();
}
if(firstDate.after(secondDate)) {
System.out.println("The first date is after the second date");
} else{
System.out.println("The first date is before the second date");
}
}
您可以将上述方法复制并粘贴到您的 IDE 中,然后尝试更改 Date 变量中的时间并查看结果以及更改 if 语句中执行的检查。
如果您在调试器中查看 Date 对象之一的值,您会看到那里有毫秒,只是在以特定格式打印时没有显示。
关于Java 日期无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648824/