Java Date getTime() метод

Я использую getTime() метод класса Date в Java.

когда я выполняю это в моем локальном файле, он возвращает значение, отличное от того, когда я выполняю это на другом компьютере, тогда как значение даты такое же.

start.getTime()

2 ответа

Date Объект фактически является просто контейнером для значений в миллисекундах с начала эпохи (миллисекунды с 1 января 1970 года в полночь по Гринвичу), то есть значения, которое вы получаете от getTime, Вы сказали "... тогда как значение даты одинаково...", что говорит о том, что вы смотрите на другие аспекты Date объект, как getHours и тому подобное, но обратите внимание на все эти " устаревшие " уведомления об этих методах. Они там по причине.

Если вы используете что-то, что разработано, чтобы хорошо обрабатывать часовые пояса (новый java.time материал; в крайнем случае старый java.util.Calendar, но "хорошо" растягивает его), вы могли бы легко иметь Date объект в одном часовом поясе, который, как говорят эти механизмы, (например) 2017-02-01 в 11:06, а другой в другом часовом поясе, который, как они говорят, также 2017-02-01 в 11:06, но получают разные значения из getTime, Это из-за разницы в часовых поясах.

Смотрите Javadoc для Date.getTime():

Возвращает количество миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу, представленное этим объектом Date.

Обратите внимание, что строковое представление экземпляра Date (String возвращается toString()) может отличаться в зависимости от локали и настроек часового пояса, но getTime() Метод всегда будет вести себя так, как описано выше.

Другие вопросы по тегам