Angenommen, meine Windows-Serveranwendung wird in einer Eastern Time Zone (NY) ausgeführt.So erhalten Sie den Sommerzeitstatus einer anderen Zeitzone
Ich konvertiere und speichere jedes Datetime-Ereignis (den Moment, in dem es passiert) in UTC, so dass jede Client-Anwendung, die eine Verbindung zum Server herstellt, die UTC-Zeit des Ereignisses liest und konvertiert und in der eigenen TZ anzeigt.
Aber hier ist der knifflige Teil, einige Ereignisse melden ihren Zeitstempel zu einem anderen Zeitpunkt und nicht explizit Sommerzeit Informationen (zB xx: xx: xx AM PT, was bedeutet Pacific Time, aber ich weiß nicht, ob es derzeit in der Sommerzeit).
Der Server könnte überprüfen, ob es in der Sommerzeit ist, aber das wäre für Server eigenen TZ (Eastern Time). Das Beste, was ich mir vorstellen konnte, ist, die lokalen Sommer-Spar-Informationen des Servers zu lesen und diese auch für PT zu verwenden, aber ich weiß, dass das nicht 100% genau ist. Besonders durch das kurze Fenster, wenn ET gerade gestartet hat (oder gestoppt hat), Sommerzeit zu verwenden, und PT hat noch Stunden, um dies zu tun.
Nun meine Frage ist, gibt es eine Möglichkeit (in Windows API) genau über eine andere Zeitzone Sommerzeit Status unabhängig davon herauszufinden, welche Zeitzone die Server-App befindet?
Bearbeiten: ok, wie konvertiere ich dies in UTC "Sun, 13.03.2016, 01.15 Uhr PT", von einer Windows-Maschine, die in Eastern Time läuft? (Beachten Sie, dass dieses Datum/diese Uhrzeit speziell ausgewählt wurde, wenn der laufende Rechner (in ET) gerade im Sommer ist und Datum/Uhrzeit nicht konvertiert werden soll gerade noch in DST. Ich habe die UTC-Konvertierung abgedeckt, konnte aber nicht feststellen wenn aus der angegebenen Datum/Zeit ist in DST oder nicht.
Does [diese vorherige Frage] (http://stackoverflow.com/questions/2532729/daylight-saving-time-and-time-zone-best-practices) Hilfe? –
Wie identifizieren Sie die Zeitzone in Ihrer Anwendung? Wenn Sie nur Abkürzungen wie "PT" haben, können Sie das sehr schwierig oder unmöglich finden. Sind diese Eingaben auf bestimmte feste Werte beschränkt? Oder könnten sie buchstäblich alles sein? –
@MattJohnson sie sind in der Regel HTTP-Standard-Datum/Uhrzeit Zeichenfolgen (die tatsächlich DST-Informationen enthalten, wie xx: xx: xx AM PST oder PDT, wenn DST aktiv ist), aber einige Server sind nicht so großzügig, um die DST-Informationen zur Verfügung zu stellen und einfach zu sagen dass es PT (Pasific Time) ist und Sie wissen lassen, ob PT zum angegebenen Zeitpunkt in DST ist oder nicht. Das System (Windows) sollte dies wissen, da es die Systemuhr am 2. und 1. Sonntag im März und November anpasst und dies dem Benutzer mit einer API bereitstellen könnte. –