timegm - обратные gmtime и localtime функции
timegm(3)
обратные gmtime и localtime функции
Other Alias
timelocal
ОБЗОР
#include <time.h>
time_t timelocal(struct tm *tm);
time_t timegm(struct tm *tm);
Требования макроса тестирования свойств для glibc
(см.
feature_test_macros(7)):
timelocal(), timegm(): _BSD_SOURCE || _SVID_SOURCE
ОПИСАНИЕ
Функции
timelocal() и
timegm() выполняют обратные
localtime(3) и
gmtime(3) действия.
АТРИБУТЫ
Описание терминов данного раздела смотрите в
attributes(7).
Интерфейс Атрибут Значение
timelocal(),
timegm()
безвредность в потоках: безвредно (MT-Safe env locale)
СООТВЕТСТВИЕ СТАНДАРТАМ
Данные функции являются нестандартными расширениями GNU, которые также
присутствуют в BSD. Не используйте их; смотрите
ЗАМЕЧАНИЯ.
ЗАМЕЧАНИЯ
Функция
timelocal() эквивалентна стандартной функции POSIX
mktime(3). Нет ни одной причины когда-либо её использовать.
Переносимым вариантом timegm() является установка переменной окружения
TZ в UTC, вызов mktime(3) и восстановление значения TZ. Примерно
так:
#include <time.h>
#include <stdlib.h>
time_t
my_timegm(struct tm *tm)
{
time_t ret;
char *tz;
tz = getenv("TZ");
if (tz)
tz = strdup(tz);
setenv("TZ", "", 1);
tzset();
ret = mktime(tm);
if (tz) {
setenv("TZ", tz, 1);
free(tz);
} else
unsetenv("TZ");
tzset();
return ret;
}