Chính thời gian ngày không chứa thông tin múi giờ thực. Nó có thể biết nếu đó là UTC hoặc địa phương, nhưng không biết địa phương thực sự có ý nghĩa gì.
DateTimeOffset có phần tốt hơn - về cơ bản là thời gian UTC và chênh lệch. Tuy nhiên, điều đó vẫn chưa thực sự đủ để xác định múi giờ, vì nhiều múi giờ khác nhau có thể có cùng độ lệch tại bất kỳ thời điểm nào. Điều này nghe có vẻ như nó có thể là tốt, đủ cho bạn mặc dù, như tất cả các bạn đã có để làm việc với khi phân tích ngày/thời gian là bù đắp.
Hỗ trợ cho các múi giờ của .NET 3.5 tốt hơn rất nhiều, nhưng tôi thực sự muốn thấy một "ZonedDateTime" chuẩn hoặc một cái gì đó tương tự - thời gian UTC và múi giờ thực tế. Thật dễ dàng để xây dựng của riêng bạn, nhưng nó sẽ được tốt đẹp để xem nó trong các thư viện chuẩn.
CHỈNH SỬA: Gần bốn năm sau, tôi khuyên bạn nên sử dụng Noda Time có tập hợp ngày/giờ phong phú hơn. Mặc dù vậy, tôi bị thiên vị, là tác giả chính của Noda Time :)
Nguồn
2009-02-23 07:07:30
Yêu cầu PublicDomain trên CodePlex thực hiện điều này cho bạn. – Cheeso
Một TimeZone enum trong BCL sẽ là tốt đẹp nếu các múi giờ trên thế giới là tĩnh và không thay đổi. – jlafay
@jlafay: Tuy nhiên, chúng thay đổi - ví dụ như nhiều múi giờ đã được thêm vào Windows chỉ trong năm ngoái. –