使用模式将我的字符串转换为 LocalTime
Converting my string to LocalTime with patterns
我想将我的字符串转换为 LocalTime 格式
String s = "1時30分:00";
String ss = s.replace("時", ":").replace("分", ":");
DateTimeFormatter timeColonFormatter = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("hh:mm a").toFormatter(Locale.JAPAN);
System.out.println(timeColonFormatter);
LocalTime colonTime = LocalTime.parse("3:30 am", timeColonFormatter);
System.out.println(colonTime);
我收到错误:
线程 "main" java.time.format.DateTimeParseException 中出现异常:无法在索引 0 处解析文本“3:30”
预期输出:
凌晨 3:30
在您的模式中,您有一个 two-digit 小时,并且由于您的语言环境是日本,因此您必须使用相当于 AM/PM 的日语,即 午前[=26] =] / 午后,分别如:
LocalTime.parse("03:30 午前", timeColonFormatter);
LocalTime.parse("03:30 午後", timeColonFormatter);
您也可以接受 single-digits 次,格式为 "h:mm a"
。
编辑:您也可以直接解析日本时间,无需转换为semi-international格式,例如使用模式 "h時mm分 a"
:
LocalTime colonTime = LocalTime.parse("3時30分 午前", timeColonFormatter);
或者,按照正确的日文顺序,使用模式 "ah時mm分"
:
LocalTime colonTime = LocalTime.parse("午前3時30分", timeColonFormatter);
我想将我的字符串转换为 LocalTime 格式
String s = "1時30分:00";
String ss = s.replace("時", ":").replace("分", ":");
DateTimeFormatter timeColonFormatter = new DateTimeFormatterBuilder().parseCaseInsensitive().appendPattern("hh:mm a").toFormatter(Locale.JAPAN);
System.out.println(timeColonFormatter);
LocalTime colonTime = LocalTime.parse("3:30 am", timeColonFormatter);
System.out.println(colonTime);
我收到错误:
线程 "main" java.time.format.DateTimeParseException 中出现异常:无法在索引 0 处解析文本“3:30”
预期输出:
凌晨 3:30
在您的模式中,您有一个 two-digit 小时,并且由于您的语言环境是日本,因此您必须使用相当于 AM/PM 的日语,即 午前[=26] =] / 午后,分别如:
LocalTime.parse("03:30 午前", timeColonFormatter);
LocalTime.parse("03:30 午後", timeColonFormatter);
您也可以接受 single-digits 次,格式为 "h:mm a"
。
编辑:您也可以直接解析日本时间,无需转换为semi-international格式,例如使用模式 "h時mm分 a"
:
LocalTime colonTime = LocalTime.parse("3時30分 午前", timeColonFormatter);
或者,按照正确的日文顺序,使用模式 "ah時mm分"
:
LocalTime colonTime = LocalTime.parse("午前3時30分", timeColonFormatter);