Я пытаюсь создать дату, которая будет на несколько лет позже текущего времени.Я делаю это так:
new Date(Math.abs(System.currentTimeMillis() - 94670778000L));
Однако по какой-то причине часть года в дате становится случайным неизвестным числом, в результате чего jvm вызывает исключение MysqlDataTruncation
.Это полное сообщение:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '55106056-02-25 05:40:34.461' for column 'lastSeenOnline' at row 1
Согласно записи Сергея здесь: Усечение данных: Неверное значение даты и времени: '' Я должен изменить аннотацию @Temporal с TemporalType.TIMESTAMP
на TemporalType.TIME
.Это помогает, но только потому, что часть даты затем опускается, так что это не решение, которое я ищу.
Может кто-нибудь сказать мне, что я делаю неправильно?Я только инициализирую новую дату через конструктор миллисекунд, и она должна работать, но по какой-то причине это не так.