我有一個時間字串03:02:111,它是 pattern mm:ss:SSS。我想將其轉換為 LocalTime 物件。
毫米 -> 分鐘
ss -> 秒
SSS -> 工廠
簡單的例子:
val time = "03:02:111"
val formatter = DateTimeFormatter.ofPattern("mm:ss:SSS")
val convertedTime = LocalTime.parse(time, formatter)
print(convertedTime.toString())
我得到以下例外:
java.time.format.DateTimeParseException:無法決議文本“03:02:111”:無法從 TemporalAccessor 獲取 LocalTime:{MicroOfSecond=111000,MilliOfSecond=111,NanoOfSecond=111000000,SecondOfMinute=2,MinuteOfHour=3}, java.time.format.Parsed 型別的 ISO
有人可以解釋為什么這不起作用嗎?我還檢查了兩次模式。
uj5u.com熱心網友回復:
問題是您沒有小時的定義。這意味著您必須構建一個更智能的格式化程式,告訴它哪個小時應該是默認的:
fun main(args: Array<String>) {
val time = "03:02:111"
val formatter = DateTimeFormatterBuilder()
.appendPattern("mm:ss:SSS")
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.toFormatter()
val convertedTime = LocalTime.parse(time, formatter)
print(convertedTime.toString())
}
當然,這僅在分鐘數小于 60 時才有效。如果您沒有此保證,那么您將需要另一種方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/406219.html
標籤:
