使用 java8 将字符串转换为日期

2022-09-03 14:24:57

我正在尝试使用java 8将字符串转换为某种格式。下面是我的代码。即使在将格式模式称为MM / dd / yy之后,我收到的输出也是yy / DD / MM格式。有人能指出我做错了什么吗?

    String str = "01/01/2015";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    LocalDate dateTime = LocalDate.parse(str, formatter);
    System.out.println(dateTime);

答案 1

这是因为您正在使用 toString 方法,该方法指出:

输出将采用 ISO-8601 格式 uuuu-MM-dd。

传递给 的 仅用于创建 ,但不会“附加”到创建的实例。您需要使用 LocalDate.format 方法,如下所示:DateTimeFormatterLocalDate.parseLocalDate

String str = "01/01/2015";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
LocalDate dateTime = LocalDate.parse(str, formatter);
System.out.println(dateTime.format(formatter)); // not using toString

答案 2

您可以使用 SimpleDateFormat 类来实现此目的。使用要作为参数的日期格式初始化 SimpleDateFormat 对象。

String dateInString = "27/02/2016"
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
Date date = formatter.parse(dateInString);