В Linux мне нужно найти текущий настроенный часовой пояс в качестве местоположения Олсона. Я хочу, чтобы мой (C или С++) код был переносимым на максимально возможное количество Linux-систем.
Например. Я живу в Лондоне, поэтому мое нынешнее место Олсона - "Европа/Лондон". Я не интересуюсь идентификаторами часовых поясов, таких как "BST", "EST" или что-то еще.
В Debian и Ubuntu есть файл /etc/timezone
, который содержит эту информацию, но я не думаю, что могу полагаться на этот файл, всегда находящийся там, не так ли? Gnome имеет функцию oobs_time_config_get_timezone()
, которая также возвращает правильную строку, но я хочу, чтобы мой код работал с системами без Gnome.
Итак, какой лучший общий способ получить текущий настроенный часовой пояс в качестве местоположения Olson в Linux?