Mit Groovy(oder Java), wie konvertiere ich eine org.joda.Zeit.LocalDateTime zu einem java.util.Datum?
Verwendung von Groovy - (oder Java) wie kann ich umwandeln einer org.joda.time.LocalDateTime
zu einem java.util.Date
?
import org.joda.time.*
Calendar cal = Calendar.instance
cal.set(Calendar.DATE, 1)
cal.set(Calendar.HOUR, 0)
cal.set(Calendar.MINUTE, 0)
cal.set(Calendar.SECOND, 0)
cal.set(Calendar.MILLISECOND, 0)
Date startOfTheMonth = cal.time
LocalDateTime localDateTime = new LocalDateTime()
localDateTime = localDateTime.withDayOfMonth(1)
localDateTime = localDateTime.withTime(0,0,0,0)
localDateTime.minusMonths(6)
Date dateFromLocalDate = localDateTime.toDateTime().toDate()
println startOfTheMonth
println dateFromLocalDate
assert startOfTheMonth.equals(dateFromLocalDate)
mit localDateTime.toDateTime().toDate()
gibt mir ein java.util.Date
6 Stunden off, ich bin in Central Standard time (GMT +6)
Wie wandle ich meine LocalDateTime
Datum zurück zu einem java.util.Date
so, dass die Zeit passt?
- Nur um sich zu qualifizieren, in diesem Beispiel bin ich mit Groovy-Version: 1.6.7-JVM: 1.6.0_16 unter Linux mit Joda-time-1.6
Du musst angemeldet sein, um einen Kommentar abzugeben.
EDIT:
Das problem ist die Verwendung von Kalender.STUNDE die angibt, die Stunden des morgens oder am Nachmittag.
Entweder:
oder:
Irgendwo bei der Konvertierung auf die falsche Zeitzone verwendet wird. Debug dies, indem Sie sehen, was die Standard-Zeitzone ist
TimeZone.getDefault()
und was die Joda-Time-Standard istDateTimeZone.getDefault()
.Können Sie etwas präziser werden, wenn dabei die Umwandlung zu:
localDateTime.toDateTime(yourDesiredZone).toDate()