Назва
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 до значення поточноого часового поясу,