DateTime non contiene informazioni reali sul fuso orario. È può sapere se è UTC o locale, ma non quello che significa realmente locale.
DateTimeOffset è un po 'meglio - è fondamentalmente un tempo UTC e un offset. Tuttavia, non è ancora abbastanza per determinare il fuso orario, poiché molti diversi fusi orari possono avere lo stesso offset in qualsiasi momento. Questo suona come potrebbe essere abbastanza buono per te, come tutto quello che devi lavorare quando l'analisi della data/ora è l'offset.
Il supporto per i fusi orari di .NET 3.5 è molto migliore di quello che era, ma mi piacerebbe molto vedere uno "ZonedDateTime" standard o qualcosa del genere - un'ora UTC e un fuso orario effettivo. È facile crearne uno tuo, ma sarebbe bello vederlo nelle librerie standard.
EDIT: Quasi quattro anni più tardi, ora suggerirei di utilizzare Noda Time che ha un insieme piuttosto più ricco di tipi di data/ora. Sono di parte, però, come autore principale di Noda Time :)
fonte
2009-02-23 07:07:30
Il progetto PublicDomain su CodePlex fa questo per voi. – Cheeso
Un enum TimeZone nel BCL sarebbe bello se i fusi orari del mondo sono statici e non cambiano. – jlafay
@jlafay: Tuttavia, cambiano, ad esempio, sono stati aggiunti più fusi orari a Windows solo l'anno scorso. –