我在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更好吗?
您可以使用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中使用字符串字段作为日期,然后将其转换为所需的日期格式。
最好使用LocalDateTime对象,但它会在日期和小时之间返回一个T.您应该像在LocalDate - How to remove character 'T' in LocalDate中选择的答案一样删除它
使用下面的代码。
Date myDate = new Date();
System.out.println(new SimpleDateFormat("YYYY-MM-DD HH:mm:ss").format(myDate));
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
方法一样使用,如上所示。