有人知道如何从看起来像“01:20”-> 1:20AM 和“21:20”-> 9:20PM 的字符串中解析时间(小时、分钟和 AM/PM)吗?大多数解决方案似乎都假设或需要一个 Date 或 Calendar 对象。
我的输入时间实际上来自 TimePickerDialog(具体来说,这个 MaterialDateTimePicker 实现,所以我只收到 hourOfDay、分钟和秒(整数)。
我希望能够以友好的方式格式化用户选择的时间,即 12:30 PM、02:15 AM 等。
我正在尝试使用 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但它似乎需要一个完整的日期时间字符串,例如在这个相关问题中