【问题标题】:How to convert Calendar to Date in Kotlin?如何在 Kotlin 中将日历转换为日期?
【发布时间】:2019-03-27 13:37:00
【问题描述】:

我正在尝试使用 Calendar.getInstance() 将一个月添加到日期,但我无法弄清楚为什么会出现错误“java.lang.ClassCastException : java.util.Date cannot be cast to java.lang. Number" 尝试将日历获取到 Date 对象时。

这是我正在使用的源代码:

    val date = Date()
    val cal = Calendar.getInstance()
    cal.time = date
    cal.add(Calendar.MONTH, 1)
    val datePlusOneMonth: Date = cal.time

【问题讨论】:

  • 您提供的代码在我这边运行良好。也许错误出现在您的代码中的其他地方?请检查日志并查找错误的行号
  • cal.time = date 这里不需要,否则哪一行会出现这个错误?
  • 是的,代码在我这边运行良好
  • 是的,我有。您可以在val datePlusOneMonth: Date = cal.time 行之后设置日志并检查它
  • 因为没有抛出异常)

标签: android date kotlin calendar


【解决方案1】:

谢谢 Sergey... 代码运行正常。但是我很失望,因为我添加了一行无用的代码来调试,并且我在上面设置了断点:

val datePlusOneMonth: Date = cal.time
val ok = false

我已经在“val ok = false”上设置了断点,并且调试器从未停止在“val ok = false”上,因为从未使用过“ok”。

然后要让调试器在“val ok = false”处停止,我必须执行以下操作:

val datePlusOneMonth: Date = cal.time
val ok = false
val ok2 = ok

然后我可以在“val ok = false”上添加断点,是的,代码运行良好。

【讨论】:

    【解决方案2】:

    试试这个代码

    val datePlusOneMonth = Calendar.getInstance().run {
        add(Calendar.MONTH, 1)
        time
    }
    

    【讨论】:

    • 好的,感谢您的回答,但我们发现我的代码运行正确。反正我下次会考虑这个。
    猜你喜欢
    • 2015-11-22
    • 2020-11-17
    • 2012-06-15
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多