MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana saya bisa mengambil datetime dari mongodb? Dengan membandingkan data dengan jDateChosser Java

Format Anda, YYYY-mm-dd'T'HH:MM:ss'Z' tidak benar. Mari kita bahas semua yang salah dengan format ini.

  1. Anda telah menggunakan Y bukannya y : Simbol Y digunakan untuk Week year sementara y digunakan untuk Year . Periksa Perbedaan antara tahun-tahun- era dan tahun berdasarkan minggu? untuk mempelajari lebih lanjut tentangnya.
  2. Anda telah menggunakan mm untuk bulan: Simbol bulan yang benar adalah M .
  3. Anda telah menggunakan MM selama beberapa menit: Simbol yang benar untuk menit adalah m .
  4. Anda telah menyertakan Z dalam tanda kutip tunggal: Simbol, Z digunakan untuk Time zone sedangkan 'Z' tidak lain adalah karakter literal. Mungkin Anda ingin memformat offset zona waktu +00:00 sebagai Z dan untuk ini, Anda sebenarnya harus menggunakan X .

Jadi, format yang benar adalah sebagai berikut:

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

Demo dengan format yang disarankan:

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

Keluaran:

2021-01-14T08:13:01Z

Perhatikan bahwa API tanggal-waktu java.util dan API pemformatannya, SimpleDateFormat sudah ketinggalan zaman dan rawan kesalahan. Disarankan untuk berhenti menggunakannya sepenuhnya dan beralih ke API tanggal-waktu modern .

Gunakan Date#toInstant untuk mengonversi java.util.Date objek (tipe lama) ke java.time.Instant (tipe modern). Instant mewakili titik seketika pada garis waktu dan seharusnya cukup untuk sebagian besar operasi JSON Anda. Instant#toString mengembalikan string tanggal-waktu dengan offset zona waktu UTC yang sesuai dengan standar 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));
    }
}

Keluaran:

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. Bagaimana saya bisa mendapatkan mongo mapper untuk menghasilkan file config/mongo.yml di Rails 4

  2. Fungsi Agregat MongoDB di C #

  3. Referensi dokumen luwak dengan hubungan satu-ke-banyak

  4. mongodb bagaimana cara menanyakan dengan operator nand?

  5. [Infografis] Membandingkan Cassandra vs. MongoDB