Java 格式化本地日期输出

Java 格式化本地日期输出,java,localdate,Java,Localdate,因此,我有一个类“Person”,它包含一个具有4个参数的构造函数—3个字符串和1个本地日期,以及一个重写的toString方法,该方法将输出写入控制台(它还将LocalDate变量转换为字符串)。以下是代码: public class Person { String name; String surname; LocalDate date; String placeOfBirth; Person (String name, S

因此,我有一个类“Person”,它包含一个具有4个参数的构造函数—3个字符串和1个本地日期,以及一个重写的toString方法,该方法将输出写入控制台(它还将LocalDate变量转换为字符串)。以下是代码:

    public class Person {
    
    String name;
    String surname;
    LocalDate date;
    String placeOfBirth;
    
    Person (String name, String surname, LocalDate date, String placeOfBirth) {
        this.name = name;
        this.surname = surname;
        this.date = date;
        this.placeOfBirth = placeOfBirth;
    }
    
    public String toString () {
     
     return  name + " " + surname + " " + date.toString() + " " + placeOfBirth;

    }
}
现在,在main方法中,我创建了3个具有不同参数的不同对象,并将它们全部添加到ArrayList中,如下所示:

ArrayList lista = new ArrayList();
       
       
       lista.add(person1.toString());
       lista.add(person2.toString());
       lista.add(person3.toString());

     for (Object data: lista) {
            System.out.println(data);
        }
程序运行良好,我得到以下格式的输出:

Michael Barton 1968-01-01 Krakov
现在,我希望这个日期显示为“1968年1月1日”,而不是“1968-01-01”。在这段代码中有没有一种格式化的方法


提前感谢。

您可以使用以下示例替换toString方法:

public String toString () {
    final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd. MMMM yyyy");
    return  name + " " + surname + " " + date.format(dateFormatter) + " " + placeOfBirth;
  }

LocalDate
有一个方法
format()
,该方法将
DateTimeFormatter
作为参数。看看那个。