610 Stimmen

Konvertiere java.util.Date in java.time.LocalDate

Was ist der beste Weg, ein java.util.Date-Objekt in das neue JDK 8/JSR-310 java.time.LocalDate umzuwandeln?

Date input = new Date();
LocalDate date = ???

1voto

Ole V.V. Punkte 75494

Wenn Sie ThreeTen Backport einschließlich ThreeTenABP verwenden

    Date input = new Date(); // Stellen Sie sich hier Ihr Datum vor
    LocalDate date = DateTimeUtils.toInstant(input)
            .atZone(ZoneId.systemDefault())
            .toLocalDate();

Wenn Sie das Backport von JSR 310 verwenden, haben Sie entweder keine Date.toInstant() Methode oder sie gibt Ihnen nicht das org.threeten.bp.Instant, das Sie für die weitere Konvertierung benötigen. Stattdessen müssen Sie die DateTimeUtils-Klasse verwenden, die Teil des Backports ist. Der Rest der Konvertierung ist gleich, daher ist auch die Erklärung gleich.

0voto

rogerio_gentil Punkte 359

Ich hatte Probleme mit der Implementierung von @JodaStephen auf JBoss EAP 6. Deshalb habe ich die Konvertierung gemäß Oracles Java-Tutorial unter http://docs.oracle.com/javase/tutorial/datetime/iso/legacy.html neu geschrieben.

    Date input = new Date();
    GregorianCalendar gregorianCalendar = (GregorianCalendar) Calendar.getInstance();
    gregorianCalendar.setTime(input);
    ZonedDateTime zonedDateTime = gregorianCalendar.toZonedDateTime();
    zonedDateTime.toLocalDate();

-2voto

Lawrence Punkte 1007

Was ist falsch an dieser 1 einfachen Zeile?

new LocalDateTime(new Date().getTime()).toLocalDate();

-8voto

estevamdf Punkte 25

Ich habe diese Frage mit der folgenden Lösung gelöst

  import org.joda.time.LocalDate;
  Date myDate = new Date();
  LocalDate localDate = LocalDate.fromDateFields(myDate);
  System.out.println("Mein Datum mit Date" Nov 18 11:23:33 BRST 2016);
  System.out.println("Mein Datum mit joda.time LocalTime" 2016-11-18);

In diesem Fall gibt localDate Ihr Datum in diesem Format aus "yyyy-MM-dd"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X