Чтобы получить JDK Date
, который соответствует Joda DateTime
, сначала преобразуйте в LocalDateTime
.
Как объяснено в других ответах, время в миллисекундах не меняется в зависимости от часового пояса:
DateTime local = DateTime.now()
Date localJDK = local.toDate()
assert localJDK.getTime() == local.toInstant().getMillis()
DateTime differentTimeZone = DateTime.now(DateTimeZone.forID('America/Chicago'))
Date localJDK2 = differentTimeZone.toDate()
assert differentTimeZone.toInstant().getMillis() == localJDK2.getTime()
assert localJDK.getTime() == localJDK2.getTime()
Преобразование LocalDateTime
в Date
изменит это:
Date differentTimeZoneJDK = differentTimeZone.toLocalDateTime().toDate()
assert localJDK.getTime() != differentTimeZoneJDK.getTime()