Назад | Перейти на главную страницу

Linux получает смещение UTC от текущего (или другого) часового пояса на заданную дату и время

В Чили ситуация очень специфическая, так как дни перехода на летнее время отличаются от года к другому ...

Есть ли функция для получения смещения UTC для данного дня в данное время UTC?

Я видел на Документация Suse что-то вроде zdump -v /usr/share/zoneinfo/Chile/Continental дает мне возможность получить все изменения в течение многих лет, но работа еще должна быть сделана ... есть ли команда для этого?

Или / и есть ли функция с заданной датой и временем из заданного часового пояса в UTC? А обратное?

Как Linux обрабатывает эти изменения? не нашел больше документации, чем Suse.

Вы можете использовать date команда. Вы устанавливаете часовой пояс, а затем указываете дату и время. Команда вернет это время с -03 или -04, поэтому вы будете знать, действовало ли летнее время.

Например, для Чили / Континенталь:

До перехода на летнее время в этом году:

$ TZ=Chile/Continental date --date='2020-04-03 11:00 +00'
Fri Apr  3 11:00:00 -03 2020

После перехода на летнее время в этом году:

$ TZ=Chile/Continental date --date='2020-04-06 11:00 +00'
Mon Apr  6 11:00:00 -04 2020

Чтобы отменить это, просто установите TZ на UTC и измените смещение:

$ TZ=UTC date --date='2020-04-03 11:00 -04'

На основе Эдуардо Трапани ответ, окончательный ответ для меня был

  • TZ=Chile/Continental date --date='TZ=Chile/Continental date --date='2020-04-05 02:00:15 +00' +%z который дает -0300
  • TZ=Chile/Continental date --date='2020-04-05 04:00:15 +00' +%z который дает -0400

Список зон

ls -l /usr/share/zoneinfo/

Просмотр сведений о конкретной зоне

zdump -v /usr/share/zoneinfo/Chile/Continental