I figured it out:
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.FullDateTimePattern = "yyyy-MM-ddTHH:mmzzz";
DateTime s = DateTime.Parse(inputstring, dtfi);
s = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(s, "AUS Eastern Standard Time");
TimeZoneInfo tzz = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
string timezone = (tzz.IsDaylightSavingTime(s)) ? tzz.DaylightName : tzz.StandardName;
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-AU");
string output = String.Format("{0} | {1}", s.ToString("f", culture), timezone);
donc entrée est: 2009-10-13T10: 00 -7: 00
la sortie est: Mercredi, 14 Octobre 2009 4:00 | AUS Eastern Daylight Time
entrée est: 2009-9-13T10: 00-7: 00
la sortie est: Lundi, 14 Septembre 2009 03:00 | AUS Eastern Standard Time
Oui, mais ... le fuseau horaire destimation, je ne veux pas que ce soit toujours l'heure Standard, je veux qu'il s'ajuste automatiquement à l'heure d'été aussi bien, convertime est plutôt fixe – Ayyash
@Ayyash: Non, ConvertTime tiendra également compte de l'heure d'été. –
actualyl vous avez raison, ce que je cherche est d'afficher correctement le fuseau horaire identifié ou le nom d'affichage, en retournant la propriété IsDaylightSavingTime, mais comment? Comment puis-je savoir si c'est l'heure d'été dans un fuseau horaire complètement différent? – Ayyash