繁体   English   中英

使用模式将我的字符串转换为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

在你的模式中,你有一个两位数的小时,由于你的语言环境是日本,你必须使用日语等效的AM / PM,分别是午前 / 午后 ,例如:

LocalTime.parse("03:30 午前", timeColonFormatter);
LocalTime.parse("03:30 午後", timeColonFormatter);

您也可以使用"h:mm a"模式接受"h:mm a"数的时间。

编辑:您也可以直接解析日语时间,而无需转换为半国际格式,例如使用"h時mm分 a"

LocalTime colonTime = LocalTime.parse("3時30分 午前", timeColonFormatter);

或者,按照正确的日语顺序,使用"ah時mm分"

LocalTime colonTime = LocalTime.parse("午前3時30分", timeColonFormatter);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM