Originariamente inviato da minsceboo
mi sono però accorto che usando questi metodi di java vengono tenute in conto le variazioni di orario dovute all'ora legale e solare, mentre il programma che devo scrivere io, riferendosi all'orario universale di Greenwich, non ne dovrebbe tenere conto.
Se vedi, GregorianCalendar ha anche dei costruttori che ricevono un TimeZone. Ma se usi uno degli altri costruttori come quelli che ricevono anno, mese, giorno, ecc... il TimeZone non lo passi e lui usa quello di "default". Che, almeno qui in Italia, è il "Europe/Berlin" ed ha anche l'offset dell'ora legale.
In sostanza i valori che passi sono relativi a questo TimeZone di default.
Ma se vuoi che i dati usati per costruire il GregorianCalendar facciano riferimento al time-zone GMT, basta impostare il TimeZone!!
codice:
TimeZone gmt = TimeZone.getTimeZone ("GMT");
GregorianCalendar c = new GregorianCalendar(2000, 0, 1,12,0,0);
c.setTimeZone (gmt);