2011-12-14 2 views
1

У меня есть весенний webapp, который принимает даты на лицевой стороне. Просто даты, не раз. Затем я сохраняю эти даты в java Date объектах, и они попадают в базу данных mysql в объекте Date. Первоначально у меня были проблемы с датами, не совпадающими между БД и фронтом. Дата показывает 12-15-2011 в БД и отображается как 12-14-2011 на лицевой стороне. Мне как-то удалось это исправить и синхронизировать (думаю, я остановил его от форматирования с учетом времени).Несоответствие даты между базой данных и веб-приложением

В любом случае, теперь, когда я перемещаю webapp на свой сервер (который, по-видимому, находится в GMT, пока ящик разработки находится в EDT), проблема снова возникла. Я ввожу дату в передний конец как 12-15-2011, и она предлагает базу данных и хранится как 12-15-2011. Отлично. Но затем, когда я показываю объект позже, он появляется как 12-14-2011. Я предполагаю, что это связано с тем, что моя машина была EDT, а сервер - GMT, но как я могу это предотвратить? Я просто хочу, чтобы дата была сохранена, не раз. Должен ли я прекратить использование объектов Date и просто придерживаться строк? Любая помощь будет принята с благодарностью.

ответ

3

Java не имеет понятия «Just Date, no Time» (JodaTime делает, простая Java не делает). Поэтому, когда вы вводите дату без времени, время устанавливается на 00:00:00.

Вы должны попытаться выяснить, как установить часовой пояс вашего сервера на ваш.

+0

Я изучал использование JodaTime один раз, но, казалось бы, возникла проблема с вводом объекта JodaTime в столбец Date на сервере, если я правильно помню. Любые советы о том, как это сделать? Должен ли я преобразовать его из объекта JodaTime в объект Java Date? Спасибо за ответ. – cardician

2

Этот ответ немного общий, я знаю, но если он связан с TimeZone, проверьте joda-time. Это может быть полезно.

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