Namespaces
Variants

std:: mktime

From cppreference.net
< cpp ‎ | chrono ‎ | c
헤더 파일에 정의됨 <ctime>
std:: time_t mktime ( std:: tm * time ) ;

지역 캘린더 시간을 에포크 이후 시간으로 변환하여 std::time_t 객체로 반환합니다. time - > tm_wday time - > tm_yday 는 무시됩니다. time 내의 값들은 정상 범위를 벗어나도 허용됩니다.

time - > tm_isdst 의 음수 값은 mktime 이 일광 절약 시간제가 적용되었는지 여부를 판단하려고 시도하도록 합니다.

변환이 성공하면, time 객체가 수정됩니다. time 의 모든 필드는 적절한 범위에 맞도록 업데이트됩니다. time - > tm_wday time - > tm_yday 는 다른 필드에서 사용 가능한 정보를 사용하여 재계산됩니다.

목차

매개변수

time - 변환할 지역 달력 시간을 지정하는 std::tm 객체에 대한 포인터

반환값

에포크 이후의 시간을 std::time_t 객체로 반환합니다. 성공 시 해당 시간을, - 1 를 반환합니다 - 만약 time std::time_t 객체로 표현될 수 없는 경우.

참고 사항

만약 std::tm 객체가 std::get_time 또는 POSIX strptime 함수로부터 얻어진 경우, tm_isdst 값은 불확정적(indeterminate)이며, mktime 함수를 호출하기 전에 명시적으로 설정되어야 합니다.

예제

로컬 시간을 명시적으로 구성합니다.

#include <ctime>
#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
    setenv("TZ", "/usr/share/zoneinfo/America/Los_Angeles", 1); // POSIX-specific
    std::tm tm{}; // Zero initialise
    tm.tm_year = 2020 - 1900; // 2020
    tm.tm_mon = 2 - 1; // February
    tm.tm_mday = 15; // 15th
    tm.tm_hour = 10;
    tm.tm_min = 15;
    tm.tm_isdst = 0; // Not daylight saving
    std::time_t t = std::mktime(&tm); 
    std::tm local = *std::localtime(&t);
    std::cout << "local: " << std::put_time(&local, "%c %Z") << '\n';
}

가능한 출력:

local: Sat Feb 15 10:15:00 2020 PST

참고 항목

epoch 이후 시간을 현지 시간으로 표현된 달력 시간으로 변환
(function)