2016-08-16 3 views
-1

GetTimeZoneInformationTIME_ZONE_INFO Struktur mit allen möglichen nützlichen Informationen füllt.Wie man herausfinden kann, ob die aktuelle Ortszeit in der Sommerzeit

Außer es sagt mir nicht, ob die aktuelle lokale Zeitzone Sommerzeit ist oder nicht.

Für die Angelegenheit bin ich in New York und die StandardBias und DaylightBias sagen beide dasselbe wie die Bias.

Was ist los?

+0

Sie können das aktuelle Datum anhand der Felder "StandardDate" und "DaylightDate" überprüfen, um festzustellen, ob sich die TZ derzeit in Standard oder Daylight befindet. – Logicrat

Antwort

4

Der Rückkehrcode GetTimeZoneInformation enthält die gewünschten Informationen.

Laut MSDN:

Wenn die Funktion erfolgreich ist, gibt es einen der folgenden Werte.

TIME_ZONE_ID_UNKNOWN
Sommerzeit wird in der aktuellen Zeitzone nicht benutzt wird, da keine Übergangsdaten oder automatische Einstellung für Sommerzeit deaktiviert werden.

TIME_ZONE_ID_STANDARD
Das System wird durch das StandardDate Mitglied der TIME_ZONE_INFORMATION Struktur im Bereich abgedeckt arbeitet.

TIME_ZONE_ID_DAYLIGHT
Das System wird durch das DaylightDate Mitglied der TIME_ZONE_INFORMATION Struktur im Bereich abgedeckt arbeitet.

Wenn die Funktion aus anderen Gründen fehlschlägt, z. B. wegen eines nicht ausreichenden Arbeitsspeichers, wird TIME_ZONE_ID_INVALID zurückgegeben. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError.

Stellen Sie sicher, dass Sie den Rückgabecode überprüfen, um sicherzustellen, dass die Informationen, die Sie erhalten, tatsächlich gültig sind.

+0

ja in der Tat, wie habe ich das vermisst. :-) Vielen Dank. Während ich einen Experten habe ... irgendeinen Weg, um etwas, das dem Olson-Stadtnamen ähnelt, aus Fenstern zu bekommen? Ich muss ein libical timezone-Objekt erstellen, das einen olsen-Stadtnamen benötigt, und ich kann nicht sehen, wie man es aus Fenstern herausholt. – stu

+0

@stu Kein Experte hier. Ich musste das nie tun, und eine schnelle Durchsicht der von Google ausgegrabenen Literatur zeigt keinen einfachen oder einfachen Weg, dies zu tun. Ich sehe auch keine Zuordnung in 'boost :: locale', aber ich könnte veraltet sein. Sieht so aus, als ob du eine andere Frage stellen solltest. – user4581301

+0

Danke. Ich habe viel gesucht. Ich denke Windows macht Olsen nicht, und was es tut, ist wahrscheinlich nicht genug für mich in der libischen Zeitzonendatenbank zu finden ... – stu

Verwandte Themen