MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để truy xuất datetiime từ mongodb? Bằng cách so sánh dữ liệu với jDateChosser Java

Định dạng của bạn, YYYY-mm-dd'T'HH:MM:ss'Z' không đúng. Hãy thảo luận về mọi thứ sai với định dạng này.

  1. Bạn đã sử dụng Y thay vì y : Ký hiệu Y được sử dụng cho Week year trong khi y được sử dụng cho Year . Kiểm tra Sự khác biệt giữa năm- thời đại và theo tuần theo năm? để tìm hiểu thêm về nó.
  2. Bạn đã sử dụng mm trong tháng: Ký hiệu chính xác của tháng là M .
  3. Bạn đã sử dụng MM trong vài phút: Ký hiệu chính xác cho phút là m .
  4. Bạn có Z kèm theo trong các dấu ngoặc kép: Ký hiệu, Z được sử dụng cho Time zone trong khi 'Z' không là gì ngoài một ký tự theo nghĩa đen. Có thể bạn muốn định dạng độ lệch múi giờ của +00:00 dưới dạng Z và đối với điều này, trên thực tế, bạn nên sử dụng X .

Vì vậy, định dạng đúng như sau:

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

Bản trình diễn với định dạng được đề xuất:

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

Đầu ra:

2021-01-14T08:13:01Z

Lưu ý rằng API ngày-giờ của java.util và API định dạng của chúng, SimpleDateFormat đã lỗi thời và dễ xảy ra lỗi. Bạn nên ngừng sử dụng chúng hoàn toàn và chuyển sang API ngày-giờ hiện đại .

Sử dụng Date#toInstant để chuyển đổi java.util.Date đối tượng (kiểu kế thừa) thành java.time.Instant (loại hiện đại). Instant đại diện cho một điểm tức thời trên dòng thời gian và phải vừa đủ cho hầu hết các hoạt động JSON của bạn. Instant#toString trả về chuỗi ngày-giờ với độ lệch múi giờ UTC tuân thủ tiêu chuẩn ISO-8601 .

Bản trình diễn:

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

Đầu ra:

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. Cách sửa lỗi {document} .Id không được hỗ trợ

  2. Cập nhật nhiều phần tử có giá trị khác nhau trong Mongoose

  3. MongoDB - số lượng lớn các chủ đề MongoCleaner

  4. MongoDB phiên bản 2.6 vẫn không thành công trên lập chỉ mục địa lý 2dsphere với lý do không thể giải nén các khóa địa lý và hình dạng có thể bị sai

  5. Cách cài đặt và cấu hình MongoDB trên Ubuntu