tzset()

Установить время в соответствии с текущим часовым поясом

Прототип:

#include <time.h>
void tzset( void );

Библиотека:

libc

Описание:

Функция tzset() устанавливает глобальные переменные daylight, timezone и tzname в соответствии со значением переменной окружения TZ. Если TZ не установлена, то переменные устанавливаются в значение строки конфигурации _CS_TIMEZONE. В случае, если не установлены TZ и _CS_TIMEZONE, переменные устанавливаются в значение UTC0.

После выполнения test() глобальные переменные могут иметь следующие значения:

daylight
Ноль, если региональный стандарт (локаль) не поддерживает летнее время. Ненулевое значение переменной указывает, что в локали поддерживается установка летнего времени. Данная переменная очищается или устанавливается после вызова функции tzset(), в зависимости от того, указана ли аббревиатура летнего времени в переменной окружения TZ.
timezone
Количество секунд, на которые местный часовой пояс опережает всемирное координированное время (UTC) (также известное как время по Гринвичу или GMT).
tzname
Массив из двух строк, содержащих сокращенное название часового пояса, если действует региональный стандарт установки летнего времени.

Время, устанавливаемое с помощью команды date, отражает время UTC. Для определения местного часового пояса используется переменная окружения TZ.

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void print_zone()
{
char *tz;
printf( "TZ: %s\n", (tz = getenv( "TZ" )) ? tz : "default EST5EDT" );
printf( " daylight: %d\n", daylight );
printf( " timezone: %ld\n", timezone );
printf( " time zone names: %s %s\n", tzname[0], tzname[1] );
}
int main( void )
{
tzset();
print_zone();
setenv( "TZ", "PST8PDT", 1 );
tzset();
print_zone();
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out TZ: default EST5EDT daylight: 1 timezone: 18000 time zone names: EST EDT TZ: PST8PDT daylight: 1 timezone: 28800 time zone names: PST PDT

Классификация:

POSIX 1003.1 X/Open Systems Interfaces Extension

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

ctime(), daylight, localtime(), localtime_r(), mktime(), strftime() timezone, tzname




Предыдущий раздел: Описание API системной библиотеки