I am trying to get an instance of ZonedDateTime then add 1 day to it then I want to know what the time is in mills at UTC but when I use plusDays the time stays the same and I am not sure why
here is what I am doing
val zdt: ZonedDateTime = ZonedDateTime.now()
println("${zdt.toInstant().toEpochMilli()}")
zdt.plusDays(1)
println("${zdt.toInstant().toEpochMilli()}")
zdt.withHour(0)
zdt.withMinute(0)
zdt.withSecond(0)
println("${zdt.toInstant().toEpochMilli()}")
all print statements print out the same value, what am I missing here?
Here is a link to the code sample
Those methods don't modify the
ZonedDateTimeinstance. They return new ones. The java.time classes use immutable objects.To fix your code, update the variable: