Пространства имён
Варианты
Действия

std::localtime

Материал из cppreference.com
< cpp‎ | chrono‎ | c
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
Утилиты даты и времени в стиле C
Функции
Манипуляции временем
Преобразование форматов
localtime
Константы
Типы
(C++17)
 
Определено в заголовочном файле <ctime>
std::tm* localtime( const std::time_t *time );

Преобразует заданное время с начала эпохи как значение std::time_t в календарное время, выраженное в местном времени.

Содержание

[править] Параметры

time указатель на объект std::time_t для преобразования

[править] Возвращаемое значение

Указатель на статический внутренний объект std::tm в случае успеха или нулевой указатель в противном случае. Структура может совместно использоваться std::gmtime, std::localtime и std::ctime и может перезаписываться при каждом вызове.

[править] Примечание

Эта функция не может быть потокобезопасной.

POSIX требует, чтобы эта функция устанавливала errno в EOVERFLOW в случае сбоя из-за слишком большого аргумента.

POSIX указывает, что информация о часовом поясе определяется этой функцией, как если бы она вызывала tzset, которая читает переменную среды TZ.

[править] Пример

#include <iostream>
#include <sstream>
#include <iomanip>
#include <ctime>
 
int main()
{
    setenv("TZ", "/usr/share/zoneinfo/America/Los_Angeles", 1); // специфично для POSIX
 
    std::tm tm{};  // Инициализация нулём
    tm.tm_year = 2020-1900; // 2020
    tm.tm_mon = 2-1; // Февраль
    tm.tm_mday = 15; // 15-е
    tm.tm_hour = 10;
    tm.tm_min = 15;
    tm.tm_isdst = 0; // Нет перехода на летнее время
    std::time_t t = std::mktime(&tm); 
 
    std::cout << "UTC:       " << std::put_time(std::gmtime(&t), "%c %Z") << '\n';
    std::cout << "локальное: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
}

Возможный вывод:

UTC:       Sat Feb 15 18:15:00 2020 GMT
локальное: Sat Feb 15 10:15:00 2020 PST

[править] Смотрите также

преобразует время, прошедшее с начала эпохи, в календарное время, выраженное в виде Универсального Скоординированного Времени
(функция) [править]
преобразует время от начала эпохи Unix в календарное время, выраженное как местное время
(функция) [править]