MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak mogę pobrać datetiime z mongodb? Porównując dane z jDateChosser Java

Twój format, YYYY-mm-dd'T'HH:MM:ss'Z' nie jest poprawne. Omówmy wszystko, co jest nie tak w tym formacie.

  1. Użyłeś Y zamiast y : Symbol Y jest używany dla Week year podczas gdy y jest używany dla Year . Sprawdź Różnica między rokiem era i rok oparty na tygodniu? aby dowiedzieć się więcej na ten temat.
  2. Użyłeś mm na miesiąc: Prawidłowy symbol miesiąca to M .
  3. Użyłeś MM przez minuty: Prawidłowy symbol minuty to m .
  4. Załączyłeś Z w pojedynczych cudzysłowach: Symbol Z jest używany dla Time zone podczas gdy 'Z' to nic innego jak literał znakowy. Prawdopodobnie chcesz sformatować przesunięcie strefy czasowej na +00:00 jako Z i w tym celu powinieneś użyć X .

Prawidłowy format jest więc następujący:

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

Demo z sugerowanym formatem:

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

Wyjście:

2021-01-14T08:13:01Z

Zauważ, że data-czas API java.util i ich formatowanie API, SimpleDateFormat są przestarzałe i podatne na błędy. Zaleca się całkowite zaprzestanie ich używania i przejście na nowoczesny interfejs API data-czas .

Użyj Date#toInstant przekonwertować java.util.Date obiekt (starszy typ) do java.time.Instant (nowoczesny typ). Instant reprezentuje chwilowy punkt na osi czasu i powinien wystarczyć do większości operacji JSON. Instant#toString zwraca ciąg daty i godziny z przesunięciem strefy czasowej UTC, który jest zgodny ze standardami ISO-8601 .

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

Wyjście:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb sumuje rozmiar pól tablicy

  2. Polecenie agregacji MongoDB do kodu Java

  3. Sprawdź aktualną liczbę połączeń z MongoDb

  4. Jak raz zainicjować MongoClient w Spring Boot i użyć jego metod?

  5. Jak uzyskać tablicę obiektów json zamiast dokumentów mongoose?