Пытаюсь разобраться с високосными секундами. POSIX утверждает, что gmtime и mktime должны ложить на них болт. Тем не менее, в мануале glibc сказано, что tm_sec в struct tm может быть от 0 до 60, чтобы учитывать при наличии поддержки високосную секунду. Также сказано, что gmtime работает со временем UTC. Человек со здравым рассудком решил бы, что результат вызова gmtime не зависит от переменной TZ и /еtс/localtime. Но беда в том, что в линуксе существует два набора временных зон - right и posix, с учётом и без учёта високосных секунд. Соответственно, поведение gmtime, всё-таки, зависит от того, какая временная зона используется (проверено). Установить, учитываются високосные секунды или нет, несложно. Но как сделать, чтобы gmtime гарантированно не учитывал високосные секунды? TZ=UTC, очевидно, недостаточно, потому что /usr/share/zoneinfo может содержать не позиксовый набор временных зон, а «правильный».

Ответ на:
комментарий
от true_admin


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум високосная секунда (2016)
- Форум Високосная секунда и systemd (2015)
- Форум glibc...compat-glibc (2001)
- Форум glibc (2011)
- Форум glibc (2005)