После прекрасного сеанса пробовать разные long
значения я получил это:
Date startDate1 = new Date(1284245999999L);
Date startDate2 = new Date(1284246000000L);
System.out.println(startDate1);
System.out.println(startDate2);
Date endDate = new Date(1321919999000L);
System.out.println(endDate);
Вывод был:
Sun Sep 12 01:59:59 IDT 2010
Sun Sep 12 01:00:00 IST 2010 <-- Long value is greater, but due to DST changes, actual time is one hour earlier
Tue Nov 22 01:59:59 IST 2011
Обратите внимание, что увеличение long на 1
с 1284245999999L
до 1284246000000L
возвращает нас назад во времени из-за перехода от стандартного времени к летнему времени.
Вот как ведет себя вычисление времени Java - число миллисекунд с 01.01.1970 не меняется, но время, которое оно представляет, основано на часовом поясе.