Si vous voulez profiter du fuseau horaire de votre machine locale, vous pouvez utiliser myDateTime.ToUniversalTime()
pour obtenir l'heure UTC à partir de votre heure locale ou myDateTime.ToLocalTime()
pour convertir l'heure UTC en heure de la machine locale.
// convert UTC time from the database to the machine's time
DateTime databaseUtcTime = new DateTime(2011,6,5,10,15,00);
var localTime = databaseUtcTime.ToLocalTime();
// convert local time to UTC for database save
var databaseUtcTime = localTime.ToUniversalTime();
Si vous avez besoin de convertir l'heure de/vers d'autres fuseaux horaires, vous pouvez utiliser TimeZoneInfo.ConvertTime()
o TimeZoneInfo.ConvertTimeFromUtc()
.
// convert UTC time from the database to japanese time
DateTime databaseUtcTime = new DateTime(2011,6,5,10,15,00);
var japaneseTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
var japaneseTime = TimeZoneInfo.ConvertTimeFromUtc(databaseUtcTime, japaneseTimeZone);
// convert japanese time to UTC for database save
var databaseUtcTime = TimeZoneInfo.ConvertTimeToUtc(japaneseTime, japaneseTimeZone);
Liste des fuseaux horaires disponibles
Classe TimeZoneInfo sur MSDN