2016-11-28 8 views
0

Я использую Spring бутсу и HSQLDB файл, Когда я использую:Java Calendar/Дата MinValue Поддерживается DB/Rest

calendar.setTimeInMillis(-9223372036854775808L); 
calendar.setTime(new Date(Long.MIN_VALUE)); 

и хранить и модель,

после того, как я называю отдых клиент, я получаю недопустимую дату, когда я его проверю, он возвращает некоторое положительное значение вместо отрицательного: | что я должен использовать как min_Value.

Я думал, что это может быть проблема SQL, я изменил временную переменную типа от timespan до Date, но не работал снова, я больше не уверен, что это такое, и какой nuber я должен использовать, каждый говорят о минимальном значении, кто-то говорил о -8 ....... L тоже, что работает в JS, но он тоже не работал: |

+2

в SQL-92, год должен быть между -9999 и 9999. Просто выберите случайную дату в прошлом, как мин (1 января года 1? 1 января -9999?). Обратите внимание, что в зависимости от точного типа столбца и базы данных допустимый диапазон может быть более ограниченным. Вы также можете использовать NULL, если хотите представить не существующее значение. – assylias

+0

@assylias SQL-92 год должен быть между 1 и 9999. В Java даты до 1970-01-01 имеют отрицательные значения миллисекунды. – fredt

+0

@assylias это не сработало ... – deadManN

ответ

1

Избегайте древнюю дату-время значение

многих причин, чтобы не использовать, что минимальное число в качестве значения даты. Как отмечалось, стандартный SQL не допускает таких древних дат. Нет реализации базы данных. Я знаю, что поддерживает эту ценность. И использование даты для исторических ценностей чревато проблемами и проблемами, а также не рекомендуется.

Использование эпохи в качестве значения флага

Если вы ищете произвольное значение для использования в качестве флага, таких как «никакого значения не предназначено», избегая использование нулей, то я предлагаю использовать Java и Unix epoch из первый момент 1970 года в UTC. Если вы знаете, что ваша система никогда не сохранит дату, которая еще далека от действительного значения, это будет работать хорошо. И 1970-01-01T00:00:00Z легко распознается многими программистами, администраторами баз данных и SysAdmins в качестве общей эпохи и поэтому, вероятно, будет особым значением.

java.time

Избегайте использования Date и Calendar классов. Эти неприятные классы и их братья и сестры теперь являются наследниками, вытесненными классами java.time.

Эти классы включают константу для значения эпохи: Instant.EPOCH

Похожие Вопрос: Minimum date in Java

 Смежные вопросы

  • Нет связанных вопросов^_^