Функция localtime
Функция localtime преобразует время,
заданное в формате time_t, в локальное
календарное время с учетом текущего часового пояса
и перехода на летнее время. Функция возвращает
указатель на структуру tm, содержащую
разложенные по полям компоненты даты и времени:
год, месяц, день, часы, минуты, секунды и другие.
В первый параметр мы передаем указатель на значение
типа time_t, которое нужно преобразовать.
Возвращаемый указатель ссылается на внутренний
статический объект, поэтому его содержимое может
быть перезаписано при следующем вызове функции.
Синтаксис
tm* localtime(const time_t* timer)
Пример
Давайте получим текущее время с помощью функции
time и преобразуем его в локальное
календарное время:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t now = time(nullptr);
tm* local = localtime(&now);
cout << "Year: " << local->tm_year + 1900 << endl;
cout << "Month: " << local->tm_mon + 1 << endl;
cout << "Day: " << local->tm_mday << endl;
cout << "Hour: " << local->tm_hour << endl;
cout << "Minute: " << local->tm_min << endl;
cout << "Second: " << local->tm_sec << endl;
return 0;
}
Результат выполнения кода (зависит от текущего времени):
"Year: 2024"
"Month: 6"
"Day: 15"
"Hour: 14"
"Minute: 30"
"Second: 45"
Пример
Давайте преобразуем конкретное значение
time_t, равное 0 (начало эпохи
Unix), и выведем день недели и день года:
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
time_t t = 0;
tm* local = localtime(&t);
cout << "Year: " << local->tm_year + 1900 << endl;
cout << "Weekday: " << local->tm_wday << endl;
cout << "Yearday: " << local->tm_yday << endl;
cout << "Is DST: " << local->tm_isdst << endl;
return 0;
}
Результат выполнения кода (зависит от часового пояса):
"Year: 1970"
"Weekday: 4"
"Yearday: 0"
"Is DST: 0"