В Чили ситуация очень специфическая, так как дни перехода на летнее время отличаются от года к другому ...
Есть ли функция для получения смещения 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