Originariamente inviato da marasma1
Qualcuno saprebbe spiegarmi perchè la differenza che stampa gcDifferenza è di 2 ore e 30 minuti quando in realtà è di 1 ora e 30 minuti?
I millisecondi che passi al calendar sono interpretati secondo il tempo UTC (millisecondi a partire dalla 'epoch' cioè il solito 1 Gennaio 1970 ore 0:00:00). E poi fai stampare la data ottenuta dal toString() di Date che invece stampa la data (il formato è fisso) tenendo conto del timezone (e eventualmente del daylight saving time).

Se hai i millisecondi ottenuti da una differenza non passarli ad alcuna classe Date o Calendar che sia. Usa banali operazioni di divisione ( / ) e modulo ( % ) per calcolarti secondi, minuti, ecc....