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

Làm thế nào để lưu ngày đúng cách?

Trình điều khiển c # theo mặc định (không có cài đặt bổ sung) lưu ngày cục bộ dưới dạng ngày utc vào cơ sở dữ liệu (ngày - chênh lệch múi giờ) nhưng đọc lại mà không có bất kỳ hành động nào (như vậy, ngày utc).

Bởi vì điều này khi bạn tải ngày giờ từ cơ sở dữ liệu, bạn nhận được chênh lệch trong 2 giờ (chênh lệch múi giờ của bạn). Có hai cách tiếp cận để nói với mongodb c # driver chuyển đổi ngày utc thành ngày múi giờ địa phương trong quá trình giải mã:

1. thông qua các thuộc tính cho trường ngày cụ thể:

[BsonDateTimeOptions(Kind = DateTimeKind.Local)]
public DateTime SomeDateProperty {get;set;}

2. thông qua cài đặt chung cho tất cả các trường ngày giờ (mặc định là UtcInstance ):

DateTimeSerializationOptions.Defaults = DateTimeSerializationOptions.LocalInstance;

Sau khi bạn thực hiện # 1 hoặc # 2, bạn sẽ thấy ngày địa phương.

Cập nhật:

# 2 đã lỗi thời trong phiên bản trình điều khiển mới nhất, vì vậy hãy sử dụng mã bên dưới để thay thế:

BsonSerializer.RegisterSerializer(typeof(DateTime), 
             new DateTimeSerializer(DateTimeSerializationOptions.LocalInstance));

Cập nhật:

# 2 đã thay đổi một lần nữa:

BsonSerializer.RegisterSerializer(typeof(DateTime), DateTimeSerializer.LocalInstance);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tiếp cận tốt hơn để lưu trữ và truy vấn một tập dữ liệu lớn về dữ liệu khí tượng là gì

  2. Làm cách nào để tải dữ liệu ban đầu trong MongoDB?

  3. Cách xóa tài liệu MongoDB bằng cách nhập tệp

  4. Mongoose, mảng vị trí chỉ mục

  5. Làm cách nào để lấy giá trị chuỗi của MongoID bằng PHP?