Điều này có thể phù hợp với bạn:
// This is your code
// Deserializing the DateTime object
DateTime eventTimeStamp = (DateTime)aDoc[MongoStrings.Log_Field_TimeStamp];
Console.Out.WriteLine("UtcDate: " + eventTimeStamp);
Console.Out.WriteLine("Locale : " + eventTimeStamp.Kind);
// This is new code
Console.Out.WriteLine("LocalDate: " + eventTimeStamp.ToLocalTime());
Lý do sẽ là các biến localTime của bạn được đặt thành dấu thời gian chính xác với dấu thời gian trong UTC, bạn chỉ cần nói rằng nó nên được coi là giờ địa phương. Nhưng cài đặt là giờ địa phương này không chuyển đổi thời gian, nó chỉ cho biết đây là loại thời gian nào để các phương thức khác (như ToLocalTime) biết phải làm gì ...
Nếu bạn muốn giờ địa phương đó trong một biến, thì nó có thể giống như sau:
DateTime localTime = eventTimeStamp.ToLocalTime();
Và tôi đoán nó sẽ hoạt động mà không cần thiết lập loại. Nếu không, bạn biết cách đặt loại ...