在我的Java应用程序中,我使用Mysql,它以yyyy-MM-dd hh:mm:ss格式返回日期。尽管我需要格式dd-MM-yyyy hh:mm a。转换确实发生在Hibernate VO类中。
为此,我这样做:

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATED_DATE")
private Date createdDate = new Date();

public Date getCreatedDate() {
    Date date = null;
    try {
        date = new SimpleDateFormat("dd/MM/yyyy hh-mm a")
                .parse(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(createdDate));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return date;
}

public void setCreatedDate(Date createdDate) {
    this.createdDate = createdDate;
}

但它确实给出了一个解析异常。
java.text.ParseException: Unparseable date: "2013-05-06 01:39:00"
    at java.text.DateFormat.parse(DateFormat.java:354)
    at com.sits.ec.valueObjects.MessageBoxVO.getCreatedDate(MessageBoxVO.java:64)

有人能给我个建议吗?

最佳答案

首先,为什么要格式化一个日期并再次解析它以取回date对象?您可以直接使用实际的日期对象。
其次,使用format1格式化日期,然后尝试使用format2解析该日期,这与format1不同。因此,ParseException
这就是你需要的。

public Date getCreatedDate() {
    return createdDate;
}

10-08 06:15