Функции даты и времени C
![]() | Эта статья написана как руководство или руководство . ( октябрь 2014 г. ) |
Стандартная библиотека C (libc) |
---|
Общие темы |
Разные заголовки |
|
Функции даты и времени C — это группа функций стандартной библиотеки языка программирования C, реализующая операции манипулирования датой и временем. [ 1 ] Они обеспечивают поддержку получения времени , преобразования между форматами даты и форматированного вывода в строки.
История
[ редактировать ]Строка формата, используемая в strftime
восходит как минимум к PWB/UNIX 1.0 , выпущенному в 1977 году. date
системная команда включает в себя различные параметры форматирования. [ 2 ] [ 3 ] В 1989 году был выпущен стандарт ANSI C, включающий strftime
и другие функции даты и времени. [ 4 ]
Обзор функций
[ редактировать ]Операции даты и времени C определены в time.h
заголовочный файл ( ctime
заголовок в C++ ).
Идентификатор | Описание | |
---|---|---|
Время манипуляция |
difftime
|
вычисляет разницу в секундах между двумя time_t ценности
|
time
|
возвращает текущее время системы в виде time_t значение, количество секунд (обычно это время, прошедшее с эпохи , обычно эпохи Unix ). Значение эпохи зависит от операционной системы; Часто используются 1900 и 1970 годы. См. RFC 868.
| |
clock
|
возвращает счетчик тактов процессора, связанный с процессом | |
timespec_get (С11)
|
возвращает календарное время на основе временной базы | |
Формат конверсии |
asctime
|
преобразует struct tm объект для текстового представления (устарело)
|
ctime
|
преобразует time_t значение для текстового представления
| |
strftime
|
преобразует struct tm возражать против пользовательского текстового представления
| |
strptime
|
преобразует строку с информацией о времени в struct tm
| |
wcsftime
|
преобразует struct tm объект для пользовательского текстового представления широкой строки
| |
gmtime
|
преобразует time_t значение календарного времени, выраженное как всемирное координированное время [ 5 ]
| |
localtime
|
преобразует time_t значение календарного времени, выраженное как местное время
| |
mktime
|
преобразует календарное время в time_t ценить.
| |
Константы | CLOCKS_PER_SEC
|
количество тактов процессора в секунду |
TIME_UTC
|
временная база для UTC | |
Типы | struct tm
|
разбитый тип календарного времени: год, месяц, день, час, минута, секунда |
time_t
|
арифметический тип времени (обычно время с эпохи Unix ) | |
clock_t
|
тип времени выполнения процесса | |
timespec
|
время с секундами и наносекундами |
The timespec
и родственные типы были первоначально предложены Маркусом Куном для обеспечения различных временных баз, но только TIME_UTC
был принят. [ 6 ] Однако эти функции были добавлены в C++ в 2020 году в std::chrono.
Пример
[ редактировать ]Следующий исходный код C выводит текущее время в стандартный поток вывода .
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
time_t current_time;
char* c_time_string;
/* Obtain current time. */
current_time = time(NULL);
if (current_time == ((time_t)-1))
{
(void) fprintf(stderr, "Failure to obtain the current time.\n");
exit(EXIT_FAILURE);
}
/* Convert to local time format. */
c_time_string = ctime(¤t_time);
if (c_time_string == NULL)
{
(void) fprintf(stderr, "Failure to convert the current time.\n");
exit(EXIT_FAILURE);
}
/* Print to stdout. ctime() has already added a terminating newline character. */
(void) printf("Current time is %s", c_time_string);
exit(EXIT_SUCCESS);
}
Результат:
Current time is Thu Sep 15 21:18:23 2016
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Спецификация ISO/IEC 9899:1999 (PDF) . п. 351, § 7.32.2.
- ^ «Команда системы даты PWB1 — страница руководства» . www.tuhs.org .
- ^ «Исходный код date.c PWB1» . www.tuhs.org .
- ^ «Обоснование американского национального стандарта для информационных систем — Язык программирования — C — Дата и время» . www.lysator.liu.se .
- ^ open-std.org — Проект комитета — 6 мая 2005 г., стр. 355
- ^ Маркус Кун. «Модернизированный API для ISO C» . cl.cam.ac.uk.
Внешние ссылки
[ редактировать ]