std::localtime
Материал из cppreference.com
Определено в заголовочном файле <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
[править] Смотрите также
преобразует время, прошедшее с начала эпохи, в календарное время, выраженное в виде Универсального Скоординированного Времени (функция) | |
(C23)(C11) |
преобразует время от начала эпохи Unix в календарное время, выраженное как местное время (функция) |
Документация C по localtime
|