在Java中转换日期格式

问题描述 投票:0回答:4

我在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更好吗?

java spring-rest
4个回答
1
投票

您可以使用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中使用字符串字段作为日期,然后将其转换为所需的日期格式。


2
投票

最好使用LocalDateTime对象,但它会在日期和小时之间返回一个T.您应该像在LocalDate - How to remove character 'T' in LocalDate中选择的答案一样删除它


1
投票

使用下面的代码。

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

1
投票

LocalDate是许多开发人员的首选方式,因为它已在Java 8中发布。您可以使用LocalDate.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类不提供时间表示。因此,如果您还想有时间,请使用LocalDateTime类。 .format()LocalDateTime方法可以像.format()LocalDate方法一样使用,如上所示。

© www.soinside.com 2019 - 2024. All rights reserved.