#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 одинаково во всем мире, и оно выведет дату в соответствии с вашей локализацией