Java日期无法正常工作

让我们有以下内容:

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

上一篇:Transformer+Embedding+Self-Attention原理详解


下一篇:Dyld的原理