Java中无法将hhmmss格式时间解析为LocalTime的问题求助
问题原因及解决方案
是的,这个异常确实和AM/PM(12小时制)有关。
你使用的hh是12小时制的小时格式符,取值范围为1-12,解析时需要明确对应的是上午(AM)还是下午(PM)。但你的输入字符串093000里没有AM/PM标识,解析器无法确定这个9点属于上午还是下午,因此无法转换为基于24小时制的LocalTime。
解决方法:
- 如果你的时间是24小时制(比如09点指上午9点),将格式符改为
HHmmss,HH是24小时制的小时格式符(取值0-23):
LocalTime parsed = LocalTime.parse("093000", DateTimeFormatter.ofPattern("HHmmss"));
- 如果必须用12小时制解析,需要在输入字符串中添加AM/PM标识,同时格式符也要包含
a:
// 示例:解析上午9点30分 LocalTime parsed = LocalTime.parse("093000AM", DateTimeFormatter.ofPattern("hhmmssa"));
从你的输入093000来看,显然是24小时制的时间,所以第一种方法更适配需求。
内容的提问来源于stack exchange,提问作者CS1999
相关产品推荐
相关产品推荐

