Dateクラスの代わりにCalendarクラスとGregorianClaendarを使用することをお勧めします。
Date time1, time2, time3, time4;
[...]
GregorianCalendar difference12 = new GregorianCalendar(0,0,0,0,0);
difference12.set(GregorianCalendar.MILLISECNOD, time1.getTime() - time2.getTime());
GregorianCalendar difference34 = new GregorianCalendar(0,0,0,0,0);
difference12.add(GregorianCalendar.MILLISECNOD, time3.getTime() - time4.getTime());
Date diff12 = difference12.getGregorianChange();
Date diff34 = difference34.getGregorianChange();
GregorianCalendar sum = new GregorianCalendar(0,0,0,0,0);
sum.add(GregorianCalendar.MILLISECOND, diff12.getTime() - time34.getTime());