我正在使用以下代码段,它将日期时间作为字符串,然后从中创建一个Date
对象:
Date currentDate = new Date();
SimpleDateFormat f = new SimpleDateFormat("EEEE, MMMM d 'at' h:mm a");
currentDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-03-06 12:59:01");
System.out.println(f.format(currentDate));
最后两行的输出结果为“3月6日星期四12:59 AM ”,但应该 PM 。是什么造成的?它只发生在正午上午/下午开关。例如,如果解析的时间是("2014-03-06 00:59:01")
,则输出正确“3月6日星期四12:59 AM ”。在此先感谢您的帮助!
答案 0 :(得分:8)
这一行
currentDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2014-03-06 12:59:01");
包含hh
,即1-12小时格式。尝试使用大写HH
,它使用0-23格式。
"yyyy-MM-dd HH:mm:ss"
输出:
Thursday, March 6 at 12:59 PM
日期格式符号和说明位于the SimpleDateFormat
javadocs。