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 = ???

10voto

Sahil Chhabra Punkte 9561

Sie können in einer Zeile konvertieren:

public static LocalDate getLocalDateFromDate(Date date){
   return LocalDate.from(Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()));
}

9voto

Sheldon Wei Punkte 1078

Zunächst ist es einfach, ein Datum in eine Instanz umzuwandeln

Instant timestamp = new Date().toInstant(); 

Dann können Sie die Instanz in ein beliebiges Datums-API in jdk 8 mit der Methode ofInstant() umwandeln:

LocalDateTime date = LocalDateTime.ofInstant(timestamp, ZoneId.systemDefault());

7voto

Arun Raaj Punkte 1638
Date input = new Date();
LocalDateTime  conv=LocalDateTime.ofInstant(input.toInstant(), ZoneId.systemDefault());
LocalDate convDate=conv.toLocalDate();

Die Date-Instanz enthält auch die Uhrzeit neben dem Datum, während LocalDate dies nicht tut. Sie können sie zuerst in ein LocalDateTime umwandeln, indem Sie die Methode ofInstant() verwenden, und wenn Sie es ohne Uhrzeit möchten, wandeln Sie die Instanz in ein LocalDate um.

6voto

MTB Punkte 395

Um den Prozess der Konvertierung von LocalDate/Time in Date und umgekehrt zu vereinfachen, habe ich zwei Diagramme erstellt:

  1. Converting LocalDate in Date und umgekehrt:

Geben Sie hier die Bildbeschreibung ein

  1. Converting LocalDateTime in Date und umgekehrt:

Geben Sie hier die Bildbeschreibung ein

1voto

宏杰李 Punkte 11184
public static LocalDate Date2LocalDate(Date date) {
        return LocalDate.parse(date.toString(), DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy"))

dieses Format stammt von Date#tostring

    public String toString() {
        // "EEE MMM dd HH:mm:ss zzz yyyy";
        BaseCalendar.Date date = normalize();
        StringBuilder sb = new StringBuilder(28);
        int index = date.getDayOfWeek();
        if (index == BaseCalendar.SUNDAY) {
            index = 8;
        }
        convertToAbbr(sb, wtb[index]).append(' ');                        // EEE
        convertToAbbr(sb, wtb[date.getMonth() - 1 + 2 + 7]).append(' ');  // MMM
        CalendarUtils.sprintf0d(sb, date.getDayOfMonth(), 2).append(' '); // dd

        CalendarUtils.sprintf0d(sb, date.getHours(), 2).append(':');   // HH
        CalendarUtils.sprintf0d(sb, date.getMinutes(), 2).append(':'); // mm
        CalendarUtils.sprintf0d(sb, date.getSeconds(), 2).append(' '); // ss
        TimeZone zi = date.getZone();
        if (zi != null) {
            sb.append(zi.getDisplayName(date.isDaylightTime(), TimeZone.SHORT, Locale.US)); // zzz
        } else {
            sb.append("GMT");
        }
        sb.append(' ').append(date.getYear());  // yyyy
        return sb.toString();
    }

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