Конвертировать формат даты в Java - PullRequest
0 голосов
/ 13 марта 2019

У меня есть объект Date в объекте DTO:

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

Я хочу получить этот формат даты YYYY-MM-DD HH:mm:ss в Angular.

Как правильно преобразовать Date в объект DTO? Лучше использовать LocalDateTime?

Ответы [ 4 ]

2 голосов
/ 13 марта 2019

Лучше использовать объект LocalDateTime, но он вернет его с Т между датой и часами.Вы должны удалить его, как в выбранном ответе здесь LocalDate - Как удалить символ 'T' в LocalDate

1 голос
/ 13 марта 2019

U может использовать 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);

Поскольку вы отправляете объект покоя в angular, вы можете использовать строковое поле в качестве даты в DTO, как только конвертируете его в желаемый формат даты.

1 голос
/ 13 марта 2019

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, как показано выше.

1 голос
/ 13 марта 2019

Пользователь ниже код.

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