我一直在使用基于Kotlin的安卓应用程序没有任何问题的DateTime选择器,直到它被买到,我注意到,在使用DateTime选择器时,应用程序正在崩溃。在进一步的测试中,我放松了一下,它主要是1月份的崩溃,下面的错误被突出显示。我试着从Java1.8转到1.7,但是后来我在应用程序中失去了其他功能.对于我如何克服这个问题,有什么建议吗?这似乎是一个众所周知的问题,但我无法找到一个原因/适当的解决办法。
该应用程序在从日历中获取YearMonth时崩溃
val currentMonth = YearMonth.of(
calendar.get(java.util.Calendar.YEAR),
calendar.get(java.util.Calendar.MONTH)
)
Fatal Exception: java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0
at java.time.temporal.ValueRange.checkValidValue(ValueRange.java:311)
at java.time.temporal.ChronoField.checkValidValue(ChronoField.java:730)
at java.time.YearMonth.of(YearMonth.java:221)
at in.latom.latom.MainActivity.onCreate$lambda-11$lambda-10(MainActivity.kt:505)
at in.latom.latom.MainActivity.$r8$lambda$fB3ERyY00fXDUSdrgD0tpQQiN-Y()
at in.latom.latom.MainActivity$$ExternalSyntheticLambda11.onDateSet(:8)
at android.app.DatePickerDialog.onClick(DatePickerDialog.java:173)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:188)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8595)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)发布于 2022-01-16 19:19:49
我会用LocalDateTime。例如,val month = LocalDateTime.now().getMonth()或val month = LocalDateTime.now().getMonthValue(),它将月份从1返回到12为int。
参考文献:https://developer.android.com/reference/kotlin/java/time/LocalDateTime
https://stackoverflow.com/questions/70728226
复制相似问题