有谁知道如何从看起来像 "01:20" -> 1:20AM 和 "21:20" -> 9:20PM 的字符串中解析时间(小时、分钟和 AM/PM)?大多数解决方案似乎都假设或需要 Date 或 Calendar 对象。
我的输入时间实际上来自 TimePickerDialog(特别是这个 MaterialDateTimePicker 实现,所以我只收到小时、分钟和秒(整数)。
我希望能够以友好的方式格式化用户选择的时间,即 12:30PM、02:15AM 等。
我正在尝试使用 Joda 时间:
fun formattedTime(timeStr: String): String {
// Get time from date
val timeFormatter = DateTimeFormat.forPattern("h:mm a")
val displayTime = timeFormatter.parseLocalTime(timeStr)
return displayTime.toString()
}
Run Code Online (Sandbox Code Playgroud)
但是我在输入字符串(例如“1:20”)时收到此错误:
java.lang.IllegalArgumentException: Invalid format: "1:20" is too short
我也研究过SimpleDateFormat但它似乎需要一个完整的日期时间字符串,例如在这个相关问题中