用Java转换日期格式

时间:2019-03-13 10:05:00

标签: java spring-rest

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

4 个答案:

答案 0 :(得分:2)

最好使用LocalDateTime对象,但它将在日期和小时之间返回T。您应该像在LocalDate - How to remove character 'T' in LocalDate

中的选定答案中一样将其删除

答案 1 :(得分:1)

为用户提供以下代码。

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

答案 2 :(得分:1)

import React from "react"; import { Field, reduxForm } from "redux-form"; import SelectField from "@material-ui/core/Select"; import MenuItem from "@material-ui/core/MenuItem"; const renderSelectField = ({ input, label, meta: { touched, error }, children, ...custom }) => ( <SelectField floatingLabelText={label} errorText={touched && error} {...input} onChange={(event, index, value) => input.onChange(value)} children={children} {...custom} /> ); const Form = props => { const { handleSubmit, pristine, reset, submitting } = props; return ( <form onSubmit={handleSubmit}> <div> <Field name="favoriteColor" component={renderSelectField} label="Favorite Color" > <MenuItem value="1" primaryText="value 1" /> <MenuItem value="2" primaryText="value 2" /> <MenuItem value="3" primaryText="value 3" /> </Field> </div> <div> <button type="submit" disabled={pristine || submitting}> Submit </button> <button type="button" disabled={pristine || submitting} onClick={reset}> Clear Values </button> </div> </form> ); }; export default reduxForm({ form: "form" })(Form); 是许多开发人员首选的方法,因为它已在Java 8中发布。您可以使用{{1}的LocalDate方法以所需的方式格式化LocalDate对象}}。

像来自https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

的示例
.format(DateTimeFormatter)

修改

LocalDate类不提供时间表示。因此,如果您还希望有时间,请使用LocalDate date = LocalDate.now(); String text = date.format(formatter); LocalDate parsedDate = LocalDate.parse(text, formatter); 类。如上所述,可以像使用LocalDate的{​​{1}}方法那样使用LocalDateTime的{​​{1}}方法。

答案 3 :(得分:1)

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);

当您将静止对象发送到有角度的对象时,一旦您以所需的日期格式对其进行隐蔽,您就可以将字符串字段用作DTO中的日期。