У меня следующий сценарий:
Calendar
DateTime
объект, который я использую для тяжелых манипуляций с датой/временем (joda)OraclePreparedStatement
)который принимает только объект java.sql.Date
Моя проблема в том, что объекты Calendar
и DateTime
правильно отображают дату по Гринвичу (, которую я хочу ), но когда я конвертирую в java.sql.Date
для отправки в базу данных, дата преобразуется к местному часовому поясу.
Например:
Calendar
и DateTime
являются 2012 -08 -13T23 :59 :59.000Z (правильный GMT)java.sql.Date
будет 2012 -08 -14 (неверная локальная дата UTC+2)Ниже приведен код, который я использую для преобразования.
DateTime dateGmt = new DateTime(calendarGmt.getTimeInMillis(), DateTimeZone.UTC);
java.sql.Date sqlDate = new java.sql.Date(dateGmt.getMillis());
Я не знаю, как создать объект java.sql.Date
, сохранив правильный часовой пояс. Также вполне возможно, что я делаю неправильное преобразование.