在我的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;
}