Domanda

Ho dovuto affrontare uno strano problema con l'ora legale.Ho un programma Java programmato per essere eseguito tutti i giorni alle 00:05, ma ieri è stato eseguito alle 23:05.Sto usando il calendario gregoriano per programmare questo programma in Java.Non è mai stato eseguito prima delle 23:05, a meno che qualcuno non lo abbia eseguito manualmente.Qualcuno sa se si tratta di un problema con il calendario?

È stato utile?

Soluzione

Questo problema è quasi certamente legata allo switch ora legale, anche se è strano che dovrebbe verificarsi intorno a mezzanotte dato che il passaggio all'ora legale avviene tipicamente a 2:00.

E 'difficile dire di più senza sapere che cosa il fuso orario l'apparecchio è impostato per e vedere il tuo codice vero e proprio.

Altri suggerimenti

Non è forse legato a questioni di risparmio giorno-luce? La notte precedente il tempo è stato cambiato da ora legale a ora solare in alcune parti del mondo.

Nel corso di un'ipotesi migliore, questo è in esecuzione su una versione precedente di Java, e impropriamente pensava che l'ora legale ha iniziato Domenica mattina negli Stati Uniti.

Internamente, negozi di Java il tempo come un offset GMT ... in particolare, il numero di millisecondi dal 1 gennaio 1970 00: 00: 00.000 GMT (documentato nel Calendar descrizione della classe).

Se non si desidera aggiornare Java stesso, è comunque possibile utilizzare il Fuso orario Updater Strumento per aggiornare Java fusi orari installato sul sistema.

Nota: Questo è stato presumibilmente fissato in Java 5u6, a meno che non siete in uno degli altri fusi orari di cui al questa lista .

L'ora legale mondiale e l'ora legale nordamericana a volte sono incoerenti.

In Europa l'ora legale cambia l'ultima domenica di ottobre.http://en.wikipedia.org/wiki/Daylight_ Saving_time_around_the_world#Europe

Nel Nord America l'ora legale cambia la prima domenica di novembre.http://en.wikipedia.org/wiki/Daylight_ Saving_time_around_the_world#North_America

Modifica a causa dei commenti che forniscono informazioni più precise.

Credo, che correva alle 00:05, ma nel tempo (inverno) "nuova" era 23:05.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top