У меня есть часовые пояса в формате
NZST-12.00:00NZDT-13:00:00,M10.1.0,M3.3.0
или
CET-1CEST,M3.5.0,M10.5.0/3
. Есть ли функция или библиотека для анализа и проверки их в C?
Да, потому что код, подобный библиотеке C, делает это. Итак, для такого кода есть как минимум три открытых источника:
В настоящее время код Олсона можно найти в IANA под https://www.iana.org/time-zones как tzcode2017a.tar.gz и как tzdata2017a.tar.gz для данных (или через FTP на ftp: //ftp.iana.org/ tz / Releases / tzcode2017a.tar.gz - и данные как ftp: //ftp.iana.org/tz/releases/tzdata2017a.tar.gz).
tzcode2017a.tar.gz
tzdata2017a.tar.gz
Когда-то давным-давно код был на ftp: //elsie.nci.nih.gov/pub - например, в файле tzcode2011h.tar.gz (информация о часовом поясе находится в tzdata2011h.tar.gz). Эти старые версии также доступны по желанию IANA.
tzcode2011h.tar.gz
tzdata2011h.tar.gz
Номер версии в именах файлов периодически меняется; префикс остается прежним, но год (2011 против 2017) и выпуск (h против a - и было много выпусков в каждом году между 2011 и 2017) в течение года меняется во времени.
h
a