Java 简单的日期格式无法正确解析带有 PM 的日期时间

Java Simple date format is not parsing date time with PM properly

我有以下代码来解析和格式化日期:

          SimpleDateFormat dateTimeFormatter = new SimpleDateFormat("MM/dd/yyyy HH:mm a");
          System.out.println("Before Format  " + dateTimeFormatter.parse("06/19/2018 11:17 PM"));
          System.out.println(dateTimeFormatter.format(dateTimeFormatter.parse("06/19/2018 11:17 PM")));

输出结果如下:

Before Format  Tue Jun 19 11:17:00 IST 2018
06/19/2018 11:17 AM

为什么PM里面的打印机和AM一样?

当您想以 AM/PM 格式显示时间时,重要的是使用 12 小时制 (hh) 而不是 24 小时制 (HH ).

而不是 MM/dd/yyyy HH:mm a 格式需要 MM/dd/yyyy hh:mm a

有关 SimpleDateFormat 的更多信息,请查看文档 here