我在将sql时间戳转换为字符串时遇到一些麻烦,它们的输出是不同的。
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date auctionStart;
public void setTime(){
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String aucStartString = f.format(auctionStart);
}
我的拍卖开始日期打印:2017年4月4日17:14:10 当我将它转换为字符串时,它打印:2017-04-04 05:14:10
看起来时间正在转换为12小时格式,任何想法如何纠正?
答案 0 :(得分:2)
尝试使用H
代替h
作为Class SimpleDateFormat
javadoc的小时。
h上午/下午(1-12)12号小时
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
<强>更新强>
Date auctionStart = new Date(2017-1900,4,4,17,14,10);
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String aucStartString = f.format(auctionStart);
System.out.println(aucStartString);
打印
2017-05-04 17:14:10
答案 1 :(得分:0)
根据SimpleDateFormat javadoc,您需要
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
编辑,因为我最初把'kk&#39;而不是&#39; HH&#39;这很可能不是你想要的。 &#39; KK&#39;将小时显示为1-24,而&#39; HH&#39;将小时显示为更常见的0-23。