【细节】SimpleDateFormat日期格式化21时为什么格式出09时

77 阅读1分钟

在项目中经常使用日期格式转换

public static String getFormatDateTime(String time) {
   Date date = strToDate(time, TIME_FORMATS[time.length()]);
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
   return sdf.format(date);
}

上面的方法是将字符串类型的日期转换成指定格式的日期 "yyyy年MM月dd日 hh时mm分ss秒"

例如:

2024011021

转换成

2024年01月10日 21时00分00秒

请注意:

"yyyy年MM月dd日 hh时mm分ss秒" 其中小写的hh时会按照12小时进制来转换,所以上面得到的结果就不是期望的21时,而是09时,在某种情况下这种结果不符合我们的实际要求。

如果我们需要24小时进制,只需要将小写的hh换成大写的HH