2016-04-08 10 views
0

ich eine Funktion haben, die 2 Satz von Terminen akzeptiert (start date und end date), dieJava Datum DST passt mein Datum/Uhrzeit

für mein Match-Engine verwendet werden soll ich wissen, wenn die start_date1 & end_date1 innen start_date2 & end_date2

Vorspulen: ich habe bereits die richtige Berechnung und Umsetzung, wenn ich es in lokalen laufen .. Aber wenn ich es in der Wolke laufen .. Dies ist das Ergebnis

Ergebnis:

(DATETIME IN SQL) 

input > **start_date1** : Apr 1, 2016 6:00am 

input > **end_date1** : Apr 1, 2016 7:00pm 

-- 

(TIMESTAMP IN SQL) 

input > **start_date2** : Apr 1, 2016 6:00am 

input > **end_date2** : Apr 1, 2016 6:00pm 


output : true 
-------------- 

Wie Sie die Ausgabe falsch sehen müssen .. Ich denke, es ist von der DST eingestellt wird .. Sie mir bitte sagen, ob es einen Weg gibt, DST zu ignorieren oder deaktivieren oder die einfachste Möglichkeit, es zu ignorieren.

BTW, ich benutze Java 7 .. Danke!

+0

Sie in der Lage ist, einen Test zu erstellen, sendet 'end_date1 = 6:59 pm' um zu sehen, ob deine Theorie stimmt? – jr593

+0

Ich mache nur eine stündliche Änderung so .. nahh. In meinen Loggern passt es nur für 1 Stunde. sogar erstellt eine boolesche Matrix, um diese Übereinstimmung pro Stunde zu untersuchen .. – EdBer

+0

plus, ich bereits behandelt, dass, wenn das Datum/die Zeit sogar 1 Sekunde überschreitet, wird es eine Stunde einstellen. – EdBer

Antwort

1

Es kann vorkommen, wenn Ihre lokale und Cloud-Zeitzone unterschiedlich sind. Stellen Sie sicher, dass die zwei Zeitzonen identisch sind.

Sie können Ihre Zeitzone mit diesem Befehl ändern:

TimeZone.setDefault(TimeZone.getTimeZone("yourTimeZone")); 

Sie auch Zeitzone wählen whithout DST, wie „UTC“:

TimeZone.setDefault(TimeZone.getTimeZone("UTC")); 
+0

Beachten Sie, dass sich das Ändern der aktuellen Standardzeitzone ** Ihres JVM sofort auf den gesamten anderen Code ** in allen anderen Threads in allen anderen in dieser JVM ausgeführten Apps auswirkt. Ich schlage vor, Sie tun dies nur als letzten Ausweg, um ein sehr ernstes Problem zu lösen. –