2 Stimmen

UTC-Zeit des Servers in lokale Zeit des Clients umrechnen

Ich erhalte vom Server native (C++) Anwendung eine FILETIME-Struktur im UTC-Format. Auf der verwalteten (C#) Client-Seite muss ich sie als Client(!)-Ortszeit anzeigen. Benötige ich zusammen mit der FILETIME-Übertragung Informationen über die Zeitzone des Servers, um dies zu erreichen? Oder sind solche Informationen bereits in FILETIME im UTC-Format enthalten?

7voto

dknaack Punkte 58366

Beschreibung

Sie können eine UTC-Datumszeit in eine lokale Zeit umwandeln, indem Sie TimeZoneInfo

Muster

TimeZoneInfo.ConvertTimeFromUtc(YourDateTime, TimeZoneInfo.Local);

Sie können eine UTC DateTime in eine beliebige Zeitzone konvertieren, wenn Sie den Namen kennen. Zum Beispiel.

TimeZoneInfo.ConvertTimeFromUtc(YourDateTime, 
                TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));

Mehr Informationen

0voto

Sreenath Plakkat Punkte 1735
create a class
public class TimeConverter
    {
        public static DateTime ConvertToLocalTime(DateTime utcTime, string timeZoneId)
        {
            if (string.IsNullOrEmpty(timeZoneId))
            {
                return utcTime;
            }
            return TimeZoneInfo.ConvertTimeBySystemTimeZoneId(utcTime, timeZoneId);
        }
}

In controller use TimeConverter

TimeConverter.ConvertToLocalTime(Date, yourTimeZone));

0voto

Rubarb Punkte 55

Ich weiß nicht, wie Ihre Struktur aussieht, aber wenn Sie sie in einen Standard-Zeitstring konvertieren können, wird die DateTime-Klasse sie analysieren. Dann verwenden Sie einfach die Methode ToLocalTime.

DateTime time = DateTime.Parse(FILETIME.ToString());
time.ToLocalTime();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X