Работа с датами - PullRequest
0 голосов
/ 18 мая 2011

Я вычитаю две даты друг от друга, потому что мне нужна разница во времени между ними.Я переключаю обычные проблемы, но когда я записываю их в MySQL (время), я вижу, что разница в 1 часе слишком велика.Если я ожидаю разницу в 2 минуты, я получаю 1 час 2 минуты.Теперь я думаю, что это проблема часового пояса, но есть ли способ решить эту проблему ...?

Date totalDate = visit.getTotalTime(); 
Date visitDate = visit.getVisitTime(); 
java.sql.Time sqlTotalTime = new java.sql.Time(totalDate.getTime() - visitDate.getTime()); 
ps.setTime(4, sqlTotalTime); 

дает разницу в 1 ч 2 с, а не 2 с:

08/Dec/2010:07:27:54 
08/Dec/2010:07:27:52 

Спасибо.

1 Ответ

1 голос
/ 18 мая 2011

Вы не объясняете, как именно вы вычитаете две даты или каковы «обычные проблемы» для вас.

Чтобы получить разницу во времени между двумя датами, вы можете вызвать getTime() для обеих из них, чтобы получить количество миллисекунд с 01-01-1970 00:00:00 GMT, а затем вычесть эти два значения:

long differenceInMilliseconds = date1.getTime() - date2.getTime();

Конечно, если вам нужна разница в секундах, минутах, часах и т. Д., То разделите это значение на соответствующий коэффициент.

Обратите внимание, что объект java.util.Date сам по себе не содержит никакой информации о часовых поясах.

edit (после вашего редактирования) Похоже, вы пытаетесь сохранить разницу во времени в столбце типа TIMESTAMP или в чем-то подобном. Не делай этого; TIMESTAMP и т. Д. Предназначены для значений времени, а не значений времени разница . Просто сохраните разницу во времени в числовом столбце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...