Datetime-Objekte ein „Kind“ Variable Versuchen Sie, die Timezone hilft wissen, wie sie zu behandeln. Im MSDN documentation für TimeZone.ConvertTime hat es die folgenden:
DateTimeKind.Local, Wandelt die lokale Zeit auf die Zeit in destinationTimeZone.
DateTimeKind.Utc, konvertiert die koordinierte Weltzeit (UTC) in die Zeit in destinationTimeZone.
DateTimeKind.Unspecified, Angenommen, lokal zu sein.
Zum Beispiel:
Console.WriteLine("Local time zone is '{0}'.", TimeZoneInfo.Local.Id);
var gmTime = new DateTime(2013, 03, 02, 01, 00, 00, DateTimeKind.Utc);
var localTime = new DateTime(2013, 03, 02, 01, 00, 00, DateTimeKind.Local);
var unspecifiedTime = new DateTime(2013, 03, 02, 01, 00, 00);
var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var gmTimeConverted = TimeZoneInfo.ConvertTime(gmTime, timeZone); // 03/02/2013 8:00:00AM
var localTimeConverted = TimeZoneInfo.ConvertTime(localTime, timeZone); // 03/02/2013
var unspecifiedTimeConverted = TimeZoneInfo.ConvertTime(unspecifiedTime, timeZone);
Console.WriteLine("Converting GMT to EST: {0}", gmTimeConverted);
Console.WriteLine("Converting Local to EST: {0}", localTimeConverted);
Console.WriteLine("Converting Unspecified to EST: {0}", unspecifiedTimeConverted);
Ergebnisse in:
Local time zone is 'Pacific Standard Time'.
Converting GMT to EST: 3/1/2013 8:00:00 PM
Converting Local to EST: 3/2/2013 4:00:00 AM
Converting Unspecified to EST: 3/2/2013 4:00:00 AM
Oder wenn Ihre lokale Zeitzone 'Eastern Standard Time' erhalten Sie diese Ergebnisse
Local time zone is 'Eastern Standard Time'.
Converting GMT to EST: 3/1/2013 8:00:00 PM
Converting Local to EST: 3/2/2013 1:00:00 AM
Converting Unspecified to EST: 3/2/2013 1:00:00 AM
Wenn Sie möchten, dass TimeZoneInfo 'Nicht spezifiziert' wie Utc behandelt, sollten Sie wie TimeZoneInfo.ConvertTimeFromUtc funktionieren. Wieder von MSDN documentation
DateTimeKind.Local, löst eine ArgumentException.
DateTimeKind.Unspecified oder DateTimeKind.Utc, konvertiert von Coordinated Universal Time (UTC).
Haben Sie in Betracht gezogen, stattdessen Noda zu verwenden? https://code.google.com/p/noda-time/ –
Ich wollte Noda-Zeit vorschlagen, ich habe auch http://www.babiej.demon.nl/Tz4Net/main.htm verwendet mit Erfolg – JeremyWeir
@RayCheng Ich werde es versuchen. Vielen Dank. –