在Java中将日期格式dd-MM-yyyy更改为yyyy-MM-dd

时间:2017-12-08 08:36:55

标签: java date datetime

我试图将日期字符串08-12-2017转换为2017-12-08(LocalDate)。这是我试过的 -

    String startDateString = "08-12-2017";
    LocalDate date = LocalDate.parse(startDateString);
    System.out.println(date);

还尝试使用formatter,但得到相同的结果,一个DateTimeParseException。 如何在没有例外的情况下获得像2017-12-08这样的输出?

2 个答案:

答案 0 :(得分:7)

试试这个(见下面的更新)

try {
    String startDateString = "08-12-2017";
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println(sdf2.format(sdf.parse(startDateString)));
} catch (ParseException e) {
    e.printStackTrace();
}

更新 - Java 8

    String startDateString = "08-12-2017";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
    DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    System.out.println(LocalDate.parse(startDateString, formatter).format(formatter2));

答案 1 :(得分:1)

首先,您必须将日期时间的字符串表示形式解析为Date对象。

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = (Date)formatter.parse("2011-11-29 12:34:25");

然后将Date对象格式化为首选格式的字符串。

DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
String mydate = dateFormat.format(date);