Me corrijam se eu estiver enganado.
Quando você chama o "getTime" ele retorna o número de milisegundos
desde a data "1969-12-31 00:00:00". Então, se você subtrai uma data da
outra, o resultado vai ser um número de milisegundos bem pequeno que,
após a conversão gera essa data antiga.
O resultado da subtração de duas datas não tem como resultado outra
data, mas sim um intervalo de tempo. Desse intervalo você poderia
deduzir quantos dias, horas, segundos etc que existem de diferença
entre as datas.