我遇到了一些我不理解的问题。这是微不足道的操作(将字符串解析为日期),但它没有考虑AM / PM,它始终设置为AM。
这里是我的示例,当我将startDate解析为Date时,它为其设置了AM(我希望是PM)。
String startDate = "Thu Apr 02 04:50 PM 2020";
SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd HH:mm a yyyy");
Date date1 = sdf.parse(startDate);
System.out.println(date1.toLocaleString());
系统输出为
2020年4月2日4:50:00 AM
我做错了什么?请指教。
您使用了HH
,这是24小时时间(渲染时间是凌晨4点和下午4点)。使用hh
代替,
SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd hh:mm a yyyy");
有了这个改变,我得到了
Apr 2, 2020, 4:50:00 PM
您也可以更改startDate
,例如
String startDate = "Thu Apr 02 16:50 PM 2020";
给出相同的输出(HH
)。