在 Java 中转换日期格式

Convert Date format in Java

我在 DTO 对象中有一个 Date 对象:

public class TopTerminalsDTO {

    private Date date;

    private int volume;

    private int count;

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public int getVolume() {
        return volume;
    }

    public void setVolume(int volume) {
        this.volume = volume;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
}

当我在 Angular 中得到响应时,我得到

count: 1
date: "2018-10-06T00:00:00.000+0000"
volume: 111

我想在 Angular 中获取此日期格式 YYYY-MM-DD HH:mm:ss

将 Date 转换为 DTO 对象的正确方法是什么?使用 LocalDateTime 更好吗?

使用以下代码。

Date myDate = new Date();
System.out.println(new SimpleDateFormat("YYYY-MM-DD HH:mm:ss").format(myDate));

LocalDate 是许多开发人员的首选方式,因为它已在 Java 8 中发布。您可以使用 .format(DateTimeFormatter) LocalDate.

的方法

喜欢这个例子来自:https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

LocalDate date = LocalDate.now();
String text = date.format(formatter);
LocalDate parsedDate = LocalDate.parse(text, formatter);

编辑:

LocalDate class 不提供时间表示。因此如果你喜欢也有时间,就用LocalDateTimeclass。 LocalDateTime.format()方法可以像上图LocalDate.format()方法一样使用

最好使用 LocalDateTime 对象,但它 return 它会在日期和小时之间加上一个 T。您应该像在此处选择的答案中那样将其删除

您可以使用 DateFormat 来转换您想要的日期格式。

TopTerminalsDTO tt = new TopTerminalsDTO();
tt.setDate(new Date());
String strDateFormat = "YYYY-MM-DD HH:mm:ss";
DateFormat dateFormat = new SimpleDateFormat(strDateFormat);
String formattedDate= dateFormat.format(tt.getDate());
System.out.println(formattedDate);

当您将 rest 对象发送到 angular 时,您可以将字符串字段用作 DTO 中的日期,一旦将其转换为所需的日期格式。