У меня проблема с датами и часовыми поясами.Java: Дата/Время от базы данных до миллисекунд, исчезает час
У меня есть база данных MySQL InnoDB, которая содержит два поля: DATE(yyyy-MM-dd)
и TIME(HH:mm:ss)
. Они известны как UTC (0 GMT)
. Мой компьютер находится в CET (+1 GMT)
.
• dateObject
является результатом этого resultSet.getTime("date_field")
(java.sql.Date)
• timeObject
является результатом этого resultSet.getDate("time_field")
(java.sql.Time)
В DATE базы данных хранится в 2014-02-22
и TIME 15:00
System.out.println("Untouched "+dateObject+" "+timeObject);
long date = dateObject.getTime();
long time = timeObject.getTime();
System.out.println("Touched "+new Date(date+time));
Результаты в следующем виде:
Untouched 2014-02-22 15:00:00
Touched Sat Feb 22 14:00:00 CET 2014
Почему один час пропускается с вырезанного выхода? Я ожидал следующее:
Untouched 2014-02-22 15:00:00
Touched Sat Feb 22 15:00:00 CET 2014
грохотать вещи я попытался с нижеследующим также:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date(date+time)));
И результат:
2014-02-22 14:00:00
Все во всем. Я ожидаю, что GMT + 1 покажет 16:00 (местный) и GMT + 0 для отображения 15:00
потому что ваша машина находится в другом часовом поясе. – Sionnach733
Не могли бы вы уточнить, что я делаю, так это то, что я разделяю объекты DATE и TIME и верну их обратно, я ожидаю, что они будут такими же. –
Что делает метод '.getTime()'? – Sionnach733