none
Übernahme der geänderten Zeitzone ohne neustart RRS feed

  • Frage

  • Sehr geehrtes Microsoft Team,

    besteht einen Möglichkeit eine Änderung der Windows Zeitzone in einem C# Programm direkt festzustellen ohne das das Programm neu gestartet werden muß?

    Ablauf:
    1. C#: Programm starten
    2. Windows: Unter Datum- Uhrzeiteinstellungen die Zeitzone ändern.
    3. Die Windows Uhr zeigt die richtige Uhrzeit an
    4. Im C# Programm ist noch die alte Zeitzone vorhanden

    5. Die geänderte Zeitzone wird erst im C# Programm übernommen inden man es neu startet.

    Mit folgenden Konvertierungen ist es mir nicht gelungen die richtig LocalTime zu ermitteln.

          TimeZone zone = TimeZone.CurrentTimeZone;
          DateTime local = zone.ToLocalTime(DateTime.Now);
          DateTime universal = zone.ToUniversalTime(DateTime.Now);

          var TimeFromTzi = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.Local);

    Vielen Dank

    Dienstag, 21. April 2015 09:47

Antworten

  • Hallo,

    Intern werden die Zeitzonen wie TimeZoneInfo.Local gecacht, womit eine Änderung nur erkannt wird, wenn man ClearCachedData aufruft.

    Es widerspricht dem Sinn der Zeitzone, sie global zu ändern, denn die gilt für alle aktiven Programme. Um lokale Zeiten für unterschiedliche Zeitzonen zu berechnen, rufe die entsprechende Instanz der TimeZoneInfo ab oder erzeuge eine nach Bedarf, siehe dazu Konvertieren von Uhrzeiten zwischen Zeitzonen

    Gruß Elmar

    Dienstag, 21. April 2015 10:32
    Beantworter

Alle Antworten

  • Hallo,

    Intern werden die Zeitzonen wie TimeZoneInfo.Local gecacht, womit eine Änderung nur erkannt wird, wenn man ClearCachedData aufruft.

    Es widerspricht dem Sinn der Zeitzone, sie global zu ändern, denn die gilt für alle aktiven Programme. Um lokale Zeiten für unterschiedliche Zeitzonen zu berechnen, rufe die entsprechende Instanz der TimeZoneInfo ab oder erzeuge eine nach Bedarf, siehe dazu Konvertieren von Uhrzeiten zwischen Zeitzonen

    Gruß Elmar

    Dienstag, 21. April 2015 10:32
    Beantworter
  • Hallo Elmar,

    vielen Dank für die schnelle Antwort, ClearCachedData war genau die Information die ich benötige.
    Der Hintergrund liegt daran das es sich um ein HMI handelt das nur sehr selten neu gestartet wird.

    Viele Grüße
    Andi

    Dienstag, 21. April 2015 10:56
  • Hallo Andi,

    Vielen Dank für Deine Frage und Beitrag! Ich möchte Dich auf das Markieren als Antwort aufmerksam machen:

               Forenbeiträge bewertenàNutze die Bewertungsfunktionen (Als Antwort markierenund Als hilfreich bewerten) in den MSDN Foren! Unter anderem können andere später eine Lösung schneller finden. Es ist also wünschenswert, dass die Fragenden (Benutzer) die Beiträge anderer Beantworter bewerten.

    Hier dazu die wichtigsten Anhaltspunkte aus den Forenregeln und FAQs.


    Lösungsbeiträge als
    Die Antwortmarkieren
    Bitte markieren Sie den Beitrag, der zur Lösung geführt hat, als
    Die Antwort. Durch Bewerten eines Beitrags als Die Antwort können andere Teilnehmer die Lösung schneller finden. Außerdem können Sie dem Benutzer, der die Antwort eingereicht hat, für seinen Beitrag danken und zur Steigerung der Antwortqualität in der Diskussionsgruppe beitragen.
    [Quelle: Forenregeln]

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 21. April 2015 12:57
    Administrator