在 Kotlin 中初始化日期

Iro*_*526 5 int date kotlin

我正在尝试将日期传递给 Kotlin 中的函数。我不想输入“08/30/2018”作为字符串,而是更喜欢日期。我最初只尝试了 2018 年 8 月 30 日,但编译器指出在输入中找到了整数而不是日期。

var myDate = 1/1/2000
var newDate = 08/30/2018

fun setDate(value: Int){
    myDate = value
}

setDate(newDate)

println(newDate) //0
println(myDate) //0
println(myDate.compareTo(newDate)) //0
Run Code Online (Sandbox Code Playgroud)
  1. 为什么 Kotlin 接受 08/30/2018 作为 int ?为什么它正确存储到另一个 int 变量,但在检索该值时却打印 0?

  2. 如何将变量初始化为 1/1/2000 等日期,然后稍后设置另一个日期?我还没有发现任何关于在任何地方传递日期的信息,除非它是字符串。

for*_*pas 4

  1. 当您分配8/30/2018给变量时,编译器会将其识别为整数除法8/30,即0/2018然后结果为0
  2. 你可以这样做val date = Date("1/1/2000"),但现在已弃用

您可以改用 Java 8 Date/Time API:
val date = LocalDate.of(2000, 1, 1)
您可以在此处找到更多信息: https:
//www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html