日期格式失败

Date Format Fail

我正在尝试格式化以下输入日期:“2019-02-12 18:00:40”” 为以下格式“dd-MM-yyyy”。但是,我在下面创建的日期格式化程序方法遇到了混合结果,输出如下 "8 月 11 日星期三 00:00:00 GMT+02:00 17"

  private String formatDate(String dateT) throws ParseException
    {
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
        Date date = formatter.parse(dateT);
        return date.toString();
    }

如前所述,您需要两种格式才能获得所需的结果。

如果可以使用Java8+,建议使用LocalDateTime and DateTimeFormatter (instead of SimpleDateFormat):

String stamp = "2019-02-12 18:00:40";
LocalDateTime ldt = LocalDateTime.parse(stamp, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(ldt.format(DateTimeFormatter.ofPattern("dd-MM-yyyy")));

输出:

12-02-2019

编辑:

如果你真的必须使用过时的类,你可以应用与SimpleDateFormat相同的原理:

String stamp = "2019-02-12 18:00:40";
SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = dt1.parse(stamp);
SimpleDateFormat dt2 = new SimpleDateFormat("dd-MM-yyyy");
System.out.println(dt2.format(date));

正如@Robert 所建议的。这是我最终使用两个 simpledateformatters 的解决方案。

private String formatDate(String date) throws ParseException {
    SimpleDateFormat inputDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date currentDate = inputDate.parse(date);

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
    String formattedDate = formatter.format(currentDate);
    return formattedDate;
}