Как правильно перейти от LocalDate к java.sql.Date?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как правильно перейти от LocalDate к java.sql.Date?

Сообщение Anonymous »

У меня есть LocalDate, который я пытаюсь преобразовать в java.sql.Date, чтобы сохранить его в поле даты в БД. Моя проблема в том, что когда я конвертирую его в java.sql.Date, он отстает на один день из-за того, что машина, на которой я работаю, находится в EST. Я настраиваю Joda.DateTime в формате UTC и создаю java.sql.Date с помощью конструктора millis. Я включаю выходные данные отладочных часов, чтобы вы могли видеть, каковы разные значения:

item.getDate().toDateTimeAtStartOfDay() = {org.joda.time.DateTime@6079}"2013-09-25T00:00:00.000Z"
item.getDate().toDateTimeAtStartOfDay().getMillis() = 1380067200000
new java.sql.Date(item.getDate().toDateTimeAtStartOfDay().getMillis()) = {java.sql.Date@6082}"2013-09-24"
item.getDate().getLocalMillis() = 1380067200000
new java.sql.Date(item.getDate().getLocalMillis()) = {java.sql.Date@6083}"2013-09-24"
new java.util.Date(item.getDate().getLocalMillis()) = {java.util.Date@6103}"Tue Sep 24 20:00:00 EDT 2013"


Из создания java.util.Date я предполагаю, что это связано с тем, что моя машина, на которой я тестирую, находится в EST, а LocalDate находится в UTC, но я не уверен, как правильно это исправить. Я понимаю, что могу получить местный часовой пояс и добавить его к миллисам, но это похоже на хакерское решение. Есть ли правильный способ сделать это, которого мне просто не хватает?



Обновите миллис для файла java. util.Date

new java.util.Date(item.getDate().getLocalMillis()).getTime() = 1380153600000
item.getDate().toDateTimeAtStartOfDay().getMillis() = 1380153600000
item.getDate() = {org.joda.time.LocalDate@5812}"2013-09-26"
new java.sql.Date(item.getDate().getLocalMillis()).getTime() = 1380153600000
new java.util.Date(item.getDate().getLocalMillis()) = {java.util.Date@5842}"Wed Sep 25 20:00:00 EDT 2013"
new java.util.Date(item.getDate().getLocalMillis()).getTime() = 1380153600000


Подробнее здесь: https://stackoverflow.com/questions/190 ... a-sql-date
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»