Ciao sto provando a stampare la data esatta di un tempo definito in long (in questo caso sono 21 giorni cioè 1814400000).

codice:
	public static void main(String[] args) {
		
		long time = 1814400000; //21 giorni
		System.out.println(getDateFormat(time));
		
	}
	
	private static String getDateFormat(long time) {


		String pattern = "";


		//Per i giorni
		if ((time / (24 * 60 * 60 * 1000)) != 0) {
			pattern += "dd 'Giorni' ";
		}
		//Per le ore
		if ((time / (60 * 60 * 1000)) != 0) {
			pattern += "HH 'Ore' ";
		}
		//Per i minuti
		if ((time / (60 * 1000)) != 0) {
			pattern += "mm 'Minuti' ";
		}
		//Per i secondi
		if ((time / (1000)) != 0) {
			pattern += "ss 'Secondi' ";
		}


		DateFormat dateFormat = new SimpleDateFormat(pattern);
		return dateFormat.format(new Date(time));


	}
Quando vado ad eseguire il programma invece di stamparmi 21 Giorni 00 Ore 00 Minuti 00 Secondi mi stampa 22 Giorni 01 Ore 00 Minuti 00 Secondi


​Sapete dirmi il perché? grazie