パターンとにLocalTimeに私の文字列を変換します

匿名:

私はに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);

私は、エラーを受信しました:

スレッド「メイン」java.time.format.DateTimeParseExceptionの例外:「午前三時30分」テキストインデックス0で解析できませんでした

予想される出力:

午前3時30分AM

vlumi:

あなたのパターンでは、あなたが2桁の時間を持って、そしてあなたのロケールが日本であることから、あなたはAM / PM、日本の同等のものを使用する必要が午前 / 午後、それぞれ、例えば:

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

あなたはパターンでも、一桁台倍を受け入れることができます"h:mm a"

編集:あなたは、パターンを使用して、例えば半国際形式に変換することなく、直接、日本の時間を解析することができます"h時mm分 a"

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

または、正しい日本のために、パターンを持ちます"ah時mm分"

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=226902&siteId=1