2010-11-16 16 views

risposta

10

Viene visualizzato utilizzando TimeZone.getDefault() che, a sua volta, imposterà automaticamente il fuso orario del sistema operativo su cui è in esecuzione (ovvero l'host). Quindi, in pratica, saranno la stessa cosa

Si noti che una data Java non è davvero una data! È un istante, rappresentato da un offset millisecondo dall'inizio della epoca. Contiene ancora metodi che fanno riferimento allo anno, mese ecc. Ma sono tutti deprecati. Non dovresti mai usare un oggetto Date come se fosse una data.

Utilizzare un Calendar (anche se questo è probabilmente ancora più rotto di Date) o una libreria decente come JODA.

+0

C'è qualche possibilità che un fuso orario host dell'Est Standard Eastern Time (EST) che Date.toString() a volte visualizzi il fuso orario EST, ma altre volte visualizzino Eastern Daylight Time (EDT)? Sto osservando questo strano comportamento con 'ToStringBuilder.reflectionToString (Object)' che, secondo http://stackoverflow.com/questions/4198253/in-what-format-does-tostringbuilder-reflectiontostringobject-display-dates/4198295# 4198295, usa 'Date.toString()' per visualizzare gli oggetti 'Date'. –

+0

Penso che sia probabile che il tuo sistema utilizzi qualsiasi impostazione di risparmio di luce appropriata alle tue impostazioni internazionali (i tuoi amministratori di sistema sapranno). Quindi durante il periodo dell'ora legale, mi aspetto che il fuso orario predefinito sia EDT (supponendo che EDT sia la versione di EST dell'ora legale). –

+0

La mia domanda non era abbastanza chiara. Dato un oggetto che contiene più oggetti 'Date',' ToStringBuilder.reflectionToString (Object) 'visualizza alcune date con fuso orario EST e altre date con EDT. Non dovrebbe visualizzarli tutti nel fuso orario dell'host, in questo caso EST? –

1

lo fa visualizzare il fuso orario predefinito per l'host, o TimeZone.getDefault()?

Quest'ultimo (che è lo stesso del precedente a meno che non lo si imposti esplicitamente da qualche parte). Tuttavia, questa informazione è risplendente dal codice sorgente, quindi dovrebbe essere considerata un dettaglio di implementazione. Se vuoi un comportamento ripetibile specifico, devi implementarlo tu stesso.