sql >> Database >  >> NoSQL >> MongoDB

Parseer ISO8601-datumstring tot op heden met UTC-tijdzone

Als je Java 7 of eerder gebruikt, kun je dit bericht raadplegen.

Als u Java 8 gebruikt, kunt u het volgende doen:

    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);

Bijwerken

Zoals aangegeven door @BasilBourque in de opmerking, is TemporalAccessor een interface op Java-frameworkniveau en wordt het niet aanbevolen om het in de applicatiecode te gebruiken en is het raadzaam om concrete klassen te gebruiken in plaats van de interfaces.

Deze interface is een interface op framework-niveau die niet veel gebruikt mag worden in applicatiecode. In plaats daarvan zouden toepassingen instanties van concrete typen, zoals LocalDate, moeten maken en doorgeven. Hier zijn veel redenen voor, waarvan een deel is dat implementaties van deze interface in andere kalendersystemen dan ISO kunnen zijn. Zie ChronoLocalDate voor een uitgebreidere bespreking van de problemen.

Er zijn een paar concrete klassen beschikbaar om te gebruiken, zoals LocalDate, LocalDateTime, OffsetDateTime, ZonedDateTime en etc..

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);


  1. MongoDB-query $in met regex-array van elementen

  2. Is dit een geldig gebruik van ServiceStack Redis?

  3. Waarom heeft Mongoose zowel schema's als modellen?

  4. Hadoop-ecosysteem - Inleiding tot Hadoop-componenten