C++ Дата & Время
Стандартная библиотека C++ не предоставляет так называемый тип даты. C++ наследует структуры и функции из языка C для операций с датой и временем. Чтобы использовать функции и структуры, связанные с датой и временем, необходимо включить заголовочный файл <ctime> в программу на C++.
Существует четыре типа, связанных со временем:clock_t、time_t、size_tиtmТипы clock_t, size_t и time_t могут представлять системное время и дату в виде некоторого целого числа.
тип структурыtmДата и время хранятся в виде C-структуры. Структура tm определяется следующим образом:
Ниже приведены важные функции, связанные с датой и временем в C/C++. Все эти функции являются частью стандартной библиотеки C/C++. Вы можете найти подробную информацию о каждой функции в стандартной библиотеке C++.
| Порядковый номер | Функции и описание |
|---|---|
| 1 | time_t time(time_t *time); Эта функция возвращает текущее календарное время системы — количество секунд, прошедших с 1 января 1970 года. Если у системы нет времени, она возвращает -1. |
| 2 | char *ctime(const time_t *time); Эта функция возвращает указатель на строку, содержимое которой представляет местное время в формате: Www Mmm dd hh:mm:ss yyyy\n\0 Где:
Пример возвращаемого значения: "Tue Jul 29 19:12:15 2025\n\0" |
| 3 | struct tm *localtime(const time_t *time); Эта функция возвращает указатель на структуру, представляющую локальное время.tmУказатель на структуру. |
| 4 | clock_t clock(void); Эта функция возвращает процессорное время, использованное с момента начала выполнения программы (обычно с начала программы). Если время недоступно, она возвращает -1. |
| 5 | char * asctime ( const struct tm * time ); Эта функция возвращает указатель на строку. Строка содержит информацию, хранящуюся в структуре, на которую указывает time. Формат возврата: day month date hours:minutes:seconds year\n\0. |
| 6 | struct tm *gmtime(const time_t *time); Эта функция возвращает указатель на time, где time — это структура tm, выраженная в скоординированном всемирном времени (UTC), также известном как среднее время по Гринвичу (GMT). |
| 7 | time_t mktime(struct tm *time); Эта функция возвращает календарное время, которое эквивалентно времени, хранящемуся в структуре, на которую указывает time. |
| 8 | double difftime ( time_t time2, time_t time1 ); Эта функция возвращает разницу в секундах между time1 и time2. |
| 9 | size_t strftime(); Эту функцию можно использовать для форматирования даты и времени в заданный формат. |
Текущая дата и время
Следующий пример получает текущую системную дату и время, включая местное время и Всемирное координированное время (UTC).
Пример
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
本地日期和时间:Sat Jan 8 20:07:41 2011 UTC 日期和时间:Sun Jan 9 03:07:41 2011
Форматирование времени с использованием структуры tm
tmЭта структура особенно важна при работе с операциями, связанными с датой и временем, в C/C++. Структура tm хранит дату и время в виде структуры C. Большинство функций, связанных со временем, используют структуру tm. В приведённом ниже примере применяются структура tm и различные функции, связанные с датой и временем.
Прежде чем практиковаться в использовании структур, вам нужно базовое понимание структур C и знать, как использовать оператор стрелки -> для доступа к членам структуры.
Пример
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
1970 到目前时间:1503564157 年: 2017 月: 8 日: 24 时间: 16:42:37Другие расширения