MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Analysieren Sie die ISO8601-Datumszeichenfolge bis heute mit der UTC-Zeitzone

Wenn Sie Java 7 oder früher verwenden, können Sie auf diesen Beitrag verweisen.

Wenn Sie Java 8 verwenden, können Sie Folgendes tun:

    DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
    TemporalAccessor accessor = timeFormatter.parse("2015-10-27T16:22:27.605-07:00");

    Date date = Date.from(Instant.from(accessor));
    System.out.println(date);

Aktualisieren

Wie von @BasilBourque im Kommentar hervorgehoben, ist TemporalAccessor eine Schnittstelle auf Java-Framework-Ebene und es ist nicht ratsam, sie im Anwendungscode zu verwenden, und es ist ratsam, konkrete Klassen anstelle der Schnittstellen zu verwenden.

Diese Schnittstelle ist eine Schnittstelle auf Frameworkebene, die im Anwendungscode nicht weit verbreitet sein sollte. Stattdessen sollten Anwendungen Instanzen konkreter Typen wie LocalDate erstellen und weitergeben. Dafür gibt es viele Gründe, von denen ein Teil darin besteht, dass Implementierungen dieser Schnittstelle in anderen Kalendersystemen als ISO sein können. Siehe ChronoLocalDate für eine ausführlichere Diskussion der Probleme.

Es stehen einige konkrete Klassen zur Verfügung, wie LocalDate, LocalDateTime, OffsetDateTime, ZonedDateTime usw.

DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;

OffsetDateTime offsetDateTime = OffsetDateTime.parse("2015-10-27T16:22:27.605-07:00", timeFormatter);

Date date = Date.from(Instant.from(offsetDateTime));
System.out.println(date);