Независимо от вычислений, часовой пояс зависит от того, где вы находитесь, а не от текущего времени (игнорируя такие вещи, как переход на летнее время и историческую корректировку границ часового пояса). В компьютерных системах часовой пояс — это фиксированная настройка, которую вы устанавливаете; например, во многих (большинстве?) системах Linux у нас есть символическая ссылка, такая как:
Код: Выделить всё
/etc/localtime -> /usr/share/zoneinfo/Asia/Gaza
и другие подобные механизмы в других операционных системах.
Теперь я хочу получить этот часовой пояс программно и переносимо, на C++. Я заметил старые вопросы о получении разницы часового пояса или часового пояса минус UTC, например:
- как получить смещение utc в Linux с помощью C++
- Как получить текущее смещение UTC (часовой пояс) в виде строки?
но решения, похоже, основаны на получении текущего времени, чего я не хочу делать, и на самом деле мне кажется, что это неправильный путь. Итак, могу ли я сделать это портативно/обобщенно на C++, не тратя времени?
Примечания:
- Любая стандартная версия C++ подойдет, но чем старше вы можете дать ответ, тем лучше.
- Давайте придерживаться std::chrono, если это возможно.
Подробнее здесь:
https://stackoverflow.com/questions/799 ... g-the-time