Дата должна быть переработана. Вместо длинного целого числа он должен содержать год, месяц, дату, час, минуту, секунду как отдельные поля. Может быть даже хорошо сохранить календарь и часовой пояс, с которым связана эта дата.
В нашем естественном разговоре, если назначить встречу на 1 ноября 2013 г. 13:00 по нью-йоркскому времени, это DateTime. Это НЕ Календарь. Таким образом, мы должны иметь возможность общаться и в Java.
Когда Дата хранится в виде длинного целого числа (в миллионах секунд с 1 января 1970 года или около того), расчет текущей даты зависит от календаря. Разные календари будут давать разные даты. Это с точки зрения предоставления абсолютного времени (например, 1 триллион секунд после Большого взрыва). Но часто нам также нужен удобный способ общения, например, год, месяц и т. Д.
Интересно, есть ли новые достижения в Java для согласования этих двух целей? Может быть, мои знания Java слишком стары.