Bestimmen Sie, ob die Sommerzeit (DST) in Java für ein bestimmtes Datum aktiv ist
Ich habe eine Java-Klasse, die dauert in der Breite/Länge des Standortes und gibt die GMT-Abweichung, wenn die Sommerzeit an-und ausschalten. Ich bin auf der Suche nach einem einfachen Weg, um zu bestimmen, in Java, wenn das aktuelle Datum in die Sommerzeit, so kann ich die richtigen offset. Derzeit bin ich nur ausführen dieser Berechnung für die US Zeitzonen obwohl schließlich möchte ich erweitern, um weltweite Zeitzonen sowie.
InformationsquelleAutor der Frage gelgamil | 2009-06-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die Antwort für die Maschine, auf der die Frage gestellt wird:
Einem server versuchen, um dies herauszufinden, für einen Kunden benötigen die client-Zeitzone. Siehe @Powerlord Antwort für den Grund, warum.
Für einen bestimmten Zeitzone
InformationsquelleAutor der Antwort Clint
tl;dr
java.Zeit
Hier ist die moderne java.Zeit (siehe Tutorial) version der richtige Antwort von mamboking.
amp; zoneid
stellt eine Zeit-zone. Die Klasse kennt die Regeln, die sagen, wenn Sommerzeit gilt für einer bestimmten Zeitzone.ZoneRules
Klasse Modelle, historische und zukünftige übergänge für eine Zeit-zone.Instant
einen moment auf der Zeitachse,UTC.ZonedDateTime
ist das Ergebnis der Anwendung einerZoneId
zu einemInstant
.Beispiel-code:
Beachten Sie, wie in der letzten Zeile hatten wir extrahieren eine
Instant
Objekt aus unseremZonedDateTime
Objekt mit einem einfachen AufruftoInstant
.InformationsquelleAutor der Antwort Basil Bourque
InformationsquelleAutor der Antwort mamboking
Du gehst zu haben, um zu tun, ein bisschen mehr Arbeit mit diesen Koordinaten und herauszufinden, in welcher Zeitzone Sie sich befinden. Sobald Sie wissen, welche Zeitzone das ist, die isDayLight () - Methode sinnvoll wäre.
Zum Beispiel, haben Sie keine Möglichkeit zu sagen, ob -0500 EST (USA/Kanada Eastern Standard Time), CDT (USA/Kanada Central Daylight Time), KINDERBETT (Kolumbien Zeit), AST (Brasilien Acre Standard Time), ECT (Ecuador Zeit), etc...
Einige von diesen können oder unterstützen möglicherweise nicht die Sommerzeit.
InformationsquelleAutor der Antwort Powerlord
Joda Time enthält der Handhabung von Methoden, die Berechnung des offsets für Sie. Sehen DateTimeZone.convertLocalToUTC(...)
Ergänzung, Sie benötigen, um sich die aktuelle Uhrzeit zone mit Ihren Längen - /Breitengrad info. GeoNames bietet einen java-client für seinen web-service, sowie ein einfacher web-request-Rahmen (d.h. http://ws.geonames.org/timezone?lat=47.01&lng=10.2)
InformationsquelleAutor der Antwort James Van Huis