Innanzitutto usare il long dei millisecondi con Date/DateFormat per rappresentare una "durata" non va granché bene, perché in realtà 1814400000 rappresenta l'istante del 22 Gennaio 1970 ore 00:00:00 in UTC.
E poi c'è il fatto che i DateFormat per default usano il TimeZone corrente, quindi ti stampa l'ora "locale" (ecco il perché del +1 ora). Se anche mettessi prima di formattare:
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC") );
in ogni caso ti stampa "22 Giorni" perché ti ripeto che NON lo tratta come una durata ma come una data. Ovvero sono passati 21 giorni esatti dal 1 Gennaio 1970 e quindi sei al 22 Gennaio 1970 00:00:00 esatte (sempre visto in UTC).