Man:Man3/ctime.3

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

Перейти до: навігація, пошук

Назва

asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r - перетворює дату і час у доступну форму або ASCII

Огляд

#include <time.h>

char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *buf);

char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *buf);

struct tm *gmtime(const time_t *timep);
struct tm *gmtime_r(const time_t *timep, struct tm *result);

struct tm *localtime(const time_t *timep);
struct tm *localtime_r(const time_t *timep, struct tm *result);

time_t mktime(struct tm *tm);

Опис

Функції ctime(), gmtime() та localtime(), усі візьмуть як аргумент типу time_t, що відображає календарний час. Коли розглянуто як абсолютний час, цей аргумент дорівнює кількості секунд з 00:00:00 1-го Січня 1970-го року, Координованого Універсального Часу (UTC).

Функції asctime() і mktime(), обидві, візьмуть як аргумент час у людиночитаємому форматі, що являє собою числа, що відповідають рокові, місяцю, дню тощо.

Людиночитзємий формат зберігається у структурі tm, яку означено у заголовковому файлі <time.h>:

   	struct tm {
               int     tm_sec;         /* секунди */
               int     tm_min;         /* хвилини */
               int     tm_hour;        /* години */
               int     tm_mday;        /* день місяця */
               int     tm_mon;         /* місяць */
               int     tm_year;        /* рік */
               int     tm_wday;        /* день тижня */
               int     tm_yday;        /* день року */
               int     tm_isdst;       /* літній час */
   	};

Членами структури tm являються:

tm_sec
Число секунд, які пройшли після виповнення хвилини, зазвичай у діапазоні 0 до 59, але може бути до 61, щоб дозволити перехідні секунди.
tm_min
Число хвилин, які пройшли після виповнення години, у діапазоні 0 і 59.
tm_hour
Число годин, після півночі, у діапазоні 0 до 23.
tm_mday
День місяця, у діапазоні 1 до 31.
tm_mon
Кількість місяців, починаючи з Січня, в діапазоні 0 до 11.
tm_year
Кількість років, починаючи з 1900.
tm_wday
Кількість днів, починаючи з неділі.
tm_yday
Кількість днів, починаючи з 1-го Січня, в діапазоні 0 до 365.
tm_isdst
Прапорець, що вказує, чи діє літній час. Значення є додатковим, якщо так, нуль, якщо ні і від'ємне, якщо ця інформація недоступна.

Виклик ctime(t) еквівалентний asctime(localtime(t)). Він перетворює календарний час t у ланцюжок, що має форму

   "Wed Jun 30 21:49:08 1993\n"

Використовуються наступні скорочення назв днів тижня: `Sun', `Mon', `Tue', `Wed', `Thu', `Fri' та `Sat'. Місяців: `Jan', `Feb', `Mar', `Apr', `May', `Jun', `Jul', `Aug', `Sep', `Oct', `Nov' і `Dec'. Для місяців - `Jan', `Feb', `Mar', `Apr', `May', `Jun', `Jul', `Aug', `Sep', `Oct', `Nov' і `Dec'. Повернене значення є покажчиком на статично-виділений ланцюжок, який можна перезаписати послідовними викликами будь-яких функцій дати і часу. Ця функція також надасть значення зовнішній змінній tzname (дивіться tzset(3)), яке вказуватиме теперішній часовий пояс. Схожа версія функції, ctime_r(), здійснює те саме, але зберігає ланцюжок у наданий користувачем буфер довжиною, щонайменше, 26 знаків. Їй не потрібно встановлювати tzname.

Функція gmtime() обертає календарний час timep у розгорнуте представлення, виражене у Координованому Універсальному Часі (Coordinated Universal Time - UTC). Вона може повернути NULL, якщо рік не вміщається в ціле число. Повернене значення є покажчиком на статично-відведену структуру (дані типу struct), яку можна перезаписати наступними викликами будь-яких функцій дати або часу. Функція gmtime_r() діє так само, але зберігає дані в надану користувачем структуру (тип struct).

Функція localtime() обертає календарний час у розгорнуте представлення, відносне до вказаного користувачем часового поясу. Функція діє так, ніби вона викликала tzset(3) і встановлює зовнішні змінні tzname до значення поточноого часового поясу,

Особисті інструменти