sql >> Database teknologi >  >> NoSQL >> MongoDB

Parse ISO8601-datostrengen til dato med UTC-tidszone

Hvis du bruger Java 7 eller tidligere, kan du henvise til dette indlæg.

Hvis du bruger Java 8, kan du gøre:

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

Opdater

Som påpeget af @BasilBourque i kommentaren, er TemporalAccessor en grænseflade på java framework-niveau, og det er ikke tilrådeligt at bruge i applikationskoden, og det er tilrådeligt at bruge konkrete klasser i stedet for grænseflader.

Denne grænseflade er en grænseflade på rammeniveau, der ikke bør bruges i vid udstrækning i applikationskode. I stedet bør applikationer oprette og videregive forekomster af konkrete typer, såsom LocalDate. Der er mange grunde til dette, hvoraf en del er, at implementeringer af denne grænseflade kan være i andre kalendersystemer end ISO. Se ChronoLocalDate for en mere udførlig diskussion af problemerne.

Der er et par konkrete klasser tilgængelige at bruge, såsom LocalDate, LocalDateTime, OffsetDateTime, ZonedDateTime og 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. Hvorfor bruger mongoose skema, når mongodbs fordel formodes at være, at det er skemaløst?

  2. Mongoose, sorter forespørgsel efter udfyldt felt

  3. Hvorfor er SQLite hurtigere end Redis i denne enkle benchmark?

  4. Redis Sentinels med TLS