std::localtime
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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
| |