Java 日期无法正常工作

标签 java date milliseconds

让我们有以下内容:

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/

相关文章:

java - 接收应用程序到应用程序的响应,但将被调用的应用程序没有自己的 Intent

java - 检查 Date 对象和 Calendar 对象是否在同一个月的最有效方法

javascript - 保留 jquery 选项值,保存用户的值

ios - Swift 3 - 如何在特定日期设置本地通知

c# - 引入 MySQL DATETIME(3) 字段 => .NET DataTable.Load() 现在失败

java - 如何更改子 Activity 中startActivityForResult的响应代码

java - 布隆过滤器用于在 O(n) 内从整数流中删除重复项

java - 空指针对我来说毫无意义?

mysql - FullCalendar - 将事件开始/结束保存为毫秒 - 是否格式化?

c++ - 以毫秒为单位的系统时间 C++