Как вычисляется местное время из метки времени Unix

#java #unix #time #unix-timestamp

#java #unix #время #unix-метка времени

Вопрос:

Если временная метка unix одинакова во всем мире, как я могу получить местное время.

Или оно основано на разных часовых поясах, временная метка отличается. т. Е. Я нахожусь в США, текущие секунды с UTC 1970 года равны 5000, но если я нахожусь в Азии и проверяю временную метку, это будет 4000 секунд?

Ответ №1:

UTC одинаков для каждой страны мира, независимо от того, проверяете ли вы в США или в Азии, значение будет одинаковым.

Местное время вычисляется с использованием смещения часового пояса (обычно предоставляется через базу данных часовых поясов IANA). Это добавляется ко времени UTC для определения «местного времени» с 1970 года.

Ответ №2:

Для получения системного времени java.util.Date и современные java.time.SystemClock методы System#currentTimeMillis() как oldschool, так и современные, поэтому давайте предположим, что у вас одинаковое значение времени Unix на обеих машинах.

Преобразование времени Unix в местное время может быть дипломной работой бакалавра: вы должны учитывать високосные годы, високосные секунды, переход на летнее время, некоторые изменения в часовых поясах страны, внесенные правительством. Вы можете прочитать больше обо всем этом в источниках tzdata от OpenJDK.tzdata.

Итак, вам нужно, чтобы системное время и tzdata были одинаковыми на ваших компьютерах.

Ответ №3:

Я думаю, что epoch converter может ответить на ваш вопрос:

http://www.epochconverter.com/

Вы увидите, что время Unix одинаково во всем мире, и оно выведет дату в соответствии с вашей локализацией