У меня есть программа, которая была изначально написанной для Linux, но теперь у меня есть требование, чтобы он работает на Solaris 10.Альтернативы timegm на Solaris
Часть этой программы использует функцию timegm для преобразования struct tm
в a time_t
эпоха секунд значение. Время ввода ссылается на UTC.
Попытка скомпилировать эту программу на Solaris, она не работает, потому что timegm
не может быть найден. После некоторого googling я понял, что эта функция была удалена из Solaris давным-давно (и даже личная страница Linux рекомендует не использовать ее, потому что она не стандартизирована).
Однако я до сих пор не смог найти альтернативную функцию, которая принимает struct tm
, ссылаясь на UTC и преобразует в эпоху. Большинство ссылок, которые я нашел в сети, рекомендую использовать mktime, однако эта функция интерпретирует входы со ссылкой на местный часовой пояс системы.
Обратите внимание, что я не хочу использовать tzset
, чтобы установить часовой пояс в UTC, так как это будет иметь другие побочные эффекты для программы.
Так что мой вопрос: как я могу преобразовать значение времени разбивки struct tm
, выраженное относительно UTC, в эпоху времени, в отсутствие timegm
?
Программа написана на C++, поэтому я не ограничиваюсь только C-решениями, хотя я бы предпочел не приступать к оптовой переработке, чтобы использовать дополнительную библиотеку времени.
NIce один. Эта страница алгоритмов вашей даты - фантастический ресурс – harmic