"01:20" -> 1:20AM と "21:20" -> 9:20PM のような文字列から時間 (時、分、AM/PM) を解析する方法を知っている人はいますか? そこにあるほとんどのソリューションは、Date または Calendar オブジェクトを想定または必要とするようです。
私の入力時間は、実際には TimePickerDialog (具体的には、この MaterialDateTimePicker の実装) から来ているため、hourOfDay、分、および秒 (整数) のみを受け取ります。
ユーザーが選択した時刻をわかりやすい方法でフォーマットできるようにしたい、つまり 12:30PM、02:15AM など。
Joda Time を使用しようとしています:
fun formattedTime(timeStr: String): String {
// Get time from date
val timeFormatter = DateTimeFormat.forPattern("h:mm a")
val displayTime = timeFormatter.parseLocalTime(timeStr)
return displayTime.toString()
}
しかし、「1:20」などの入力文字列でこのエラーが発生します。
java.lang.IllegalArgumentException: Invalid format: "1:20" is too short
SimpleDateFormatも調べましたが、この関連する質問のように完全な日時文字列が必要なようです