The maximum long value is 9223372036854775807 . If you exceed this maximum value, the next value will be the minimum maximum value.
If you build a date from this maximum value, it will result in a date. How about a date next to this. If you add more than a mile second for the next launches with a minimum long value.
-8120649749785140250 equivalent to 9223372036854775807 + 1102722287069635559
Try System.out.println(9223372036854775807L+1102722287069635559L);
I believe your code is equivalent
Date d1 = new Date(9223372036854775807L);
This gives the result you get.
Kartic
source share