簡體   English   中英

在實體構造函數中將日期從時間戳轉換為可讀

[英]Converting date from timestamp to human readable in entity constructor

當前,存儲的Date requestDate變量的格式如下: 2017-02-17 00:00:00.0 我想將其轉換為例如: Friday, February 17, 2017 我想在這里在我的實體中進行轉換並返回它,以便在顯示時更易讀。 這很可能在構造函數中的這一行發生: this.setRequestDate(doDateConversion(requestDate)); 我該如何進行轉換?

我的請求實體:

@Entity
@Table(name = "Request")
public class RequestDO implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="request_id")
    private Long id;
    private Date requestDate;
    private String description;
    private RequestStatus status;
    /*private Boolean read;*/
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="user_id", nullable = false)
    private Users users;

    public RequestDO() {}

    public RequestDO(Users user, Date requestDate) {
        this.setUsers(user);
        this.setRequestDate(requestDate);
    }

    @Override
    public String toString() {
        return String.format(
                "RequestDO[id=%d, inital='%s', requestDate='%s']",
                getId()
                , getUsers().getInitialName()
                , getRequestDate());
    }


    public Date getRequestDate() {
        return requestDate;
    }

    public void setRequestDate(Date requestDate) {
        this.requestDate = requestDate;
    }
}

您可以使用SimpleDateFormat將Date轉換為您選擇的可讀字符串。

您的示例的時間格式字符串為EEEE, MMMM, dd, yyyy 您必須創建一個新的SimpleDateFormat對象,並將日期格式設置為字符串。 例子...

但是Spring提供了一些特別的功能。 例如,您可以將Jackson用作日期格式: @JsonFormat(pattern="yyyy-MM-dd") more 也可以在application.properties文件中添加數據格式: spring.jackson.date-format

使用SimpleDateFormat

java.sql.Date date = new Date(System.currentTimeMillis());
System.out.println(new SimpleDateFormat("EEEE, MMMM dd, YYYY").format(date));

請參閱了解更多詳情。

我通過使用SimpleDateFormat更改在控制器中讀取的日期來解決該問題:

@RequestMapping(value = "/requests", method = RequestMethod.GET)
    public String getAllRequests(Model model, RequestModel requestModel) throws ParseException {
        List<RequestDO> requestDOArrayList = new ArrayList<RequestDO>();
        for (RequestDO requestDO : requestRepository.findAll()) {
            log.info(requestDO.toString());

            // Display all dates in Requests list in human-readable form
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date date = sdf.parse(requestDO.getRequestDate().toString());
            log.info(String.valueOf(date));
            requestDO.setRequestDate(date);

            requestDOArrayList.add(requestDO);
        }
        model.addAttribute("requests", requestDOArrayList);
        log.info(requestDOArrayList.toString());
        return "requests";
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM