【问题标题】:Formatting a Local Date output [duplicate]格式化本地日期输出[重复]
【发布时间】:2021-02-21 13:35:51
【问题描述】:

所以,我有一个类“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

现在,我希望将此日期显示为“01. January 1968”而不是“1968-01-01”。有没有办法在这段代码中以某种方式格式化?

提前致谢。

【问题讨论】:

  • A LocalDate 有一个方法 format()DateTimeFormatter 作为参数。看看那个。

标签: java localdate


【解决方案1】:

您可以将 toString 方法替换为以下示例:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多