让我们有以下内容:
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对象之一的值,您会看到毫秒数,以某种格式打印出来时不会显示出来.