Учитывает ли функция java date.before часовой пояс?

#java #timezone #date-comparison

#java #Часовой пояс #сравнение дат

Вопрос:

У меня на сервере установлен часовой пояс в BST (британское летнее время), и дата, передаваемая в функцию, была рассчитана по UTC.

На сайте Java Oracle это просто относится к сравнению времени как «сейчас», но будет ли это время «сейчас» совпадать с установленным часовым поясом или это будет тот, который установлен на сервере, на котором он запущен?

Ответ №1:

В java.util.Date нет часового пояса, фактически это часовой пояс JVM, в которой он запущен.

Мой совет, если вам нужно работать с часовыми поясами, используйте Joda

Ответ №2:

Подразумевается, что java.util.Date время всегда сохраняется в UTC. Например, если вы вызываете System.currentTimeMillis() или создаете new Date() , внутреннее время будет в UTC. но Date.toString() для разных часовых поясов по умолчанию будет указано разное время.

Итак, если вы передадите дату UTC в before функцию, вы получите правильный результат независимо от часового пояса сервера.