joda time を使用して、3 桁の時刻を HH:mm 形式に変換することは可能ですか? 私は次のことを試しました
int databaseTime = cursor.getInt(TIME);
DateTimeFormatter worldTime = DateTimeFormat.forPattern("HHmm");
String localTime = worldTime.parseDateTime(databaseTime);
これは、1000 を超えるデータベースではいつでもうまく機能しますが、データベースのタイムアウトが 100 から 900 (0100 から 0900) の場合、「70 は 1 時間ではありません」などのエラーでエラーになります (十分にスマートではありません)。 700=0700 であることがわかります)。
それで、私は試しました
String dbTime = String.valueOf(cursor.getInt(Globals.CLASSTIME));
String nextClassTime = (dbTime.length() < 4) ? "0" + dbTime : dbTime;
DateTimeFormatter worldTime = DateTimeFormat.forPattern("HHmm");
DateTimeFormatter normalTime = DateTimeFormat.forPattern("hh:mm a");
LocalTime wt = worldTime.parseLocalTime(nextClassTime);
String lt = normalTime.print(wt);
しかし、これは「現地時間」を「07:00 AM」として出力します
「7:00 AM」に戻す方法はありますか?考えられる解決策の 1 つは、データベースの時刻を整数ではなく文字列に変換し、3 桁の時刻を前の 0 で保存することだと思いますが、可能であればデータベースには触れたくありません (これには Web サービスの編集が必要になります)。同じように)