sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan jag hämta datetiime från mongodb? Genom att jämföra data med jDateChosser Java

Ditt format, YYYY-mm-dd'T'HH:MM:ss'Z' är inte korrekt. Låt oss diskutera allt som är fel med detta format.

  1. Du har använt Y istället för y : Symbolen Y används för Week year medan y används för Year . Kontrollera Skillnaden mellan year-of- era och veckobaserat år? för att lära dig mer om det.
  2. Du har använt mm för månad: Rätt symbol för månaden är M .
  3. Du har använt MM i minuter: Rätt symbol för minuten är m .
  4. Du har bifogat Z inom enstaka citattecken: Symbolen, Z används för Time zone medan 'Z' är inget annat än en bokstavlig karaktär. Förmodligen vill du formatera tidszonförskjutningen för +00:00 som Z och för detta bör du faktiskt använda X .

Så det korrekta formatet är som följer:

yyyy-MM-dd'T'HH:mm:ssX

En demo med det föreslagna formatet:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        System.out.println(sdf.format(date));
    }
}

Utdata:

2021-01-14T08:13:01Z

Observera att datum-tid-API:et för java.util och deras formaterings-API, SimpleDateFormat är föråldrade och felbenägna. Det rekommenderas att du slutar använda dem helt och hållet och byter till modernt datum-tid API .

Använd Date#toInstant för att konvertera ett java.util.Date objekt (den äldre typen) till java.time.Instant (den moderna typen). Instant representerar en momentan punkt på tidslinjen och borde räcka precis för de flesta av dina JSON-operationer. Instant#toString returnerar datum-tid-strängen med UTC-tidszonförskjutning som är kompatibel med ISO-8601-standarder .

Demo:

import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        Instant instant = date.toInstant();
        // Print the value of instant#toString
        System.out.println(instant);

        OffsetDateTime odt = instant.atOffset(ZoneOffset.UTC);
        System.out.println(odt);
        // Custom format
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ssX", Locale.ENGLISH);
        System.out.println(dtf.format(odt));
    }
}

Utdata:

2021-01-14T08:28:35.659Z
2021-01-14T08:28:35.659Z
2021-01-14T08:28:35Z



  1. Mongodb uppdateras inte ordentligt från 4.2 till 4.4

  2. Databaser som använder JSON som lagrings-/transportformat

  3. MongoDB filtrerar endast efter array-egenskap om den finns

  4. mean.js-menyn ärPublic fungerar inte