다음을 통해 공유


local_info 구조체

로 변환한 결과에 대한 표준 시간대 정보에 대한 하위 수준 인터페이스를 local_time sys_time제공합니다.

구문

struct local_info;

멤버

함수 설명
result 변환 결과를 설명하는 코드입니다.
first, second 변환의 결과입니다.

멤버 상수

속성 설명
unique 0 변환 결과는 고유합니다.
nonexistent 1 변환할 해당 sys_time 항목이 local_time 없습니다.
ambiguous 2 변환 결과는 모호합니다.

비멤버

함수 설명
operator<< 스트림에 출력 local_info 합니다.

result

를 변환한 local_time 결과입니다 sys_time.

int result;

반환 값

결과는 다음 값 중 하나일 수 있습니다.

  • unique: 성공적으로 local_time .로 sys_time변환되었습니다.
  • nonexistent: 에서 .로의 매핑이 local_time sys_time없습니다.
  • ambiguouslocal_time: 일광 절약 시간과 표준 시간 사이의 전환 중에 토지를 두 sys_time 값으로 변환할 수 있습니다.

설명

에 따라 설정되는 방법 firstsecond 설정에 대한 자세한 내용은 다음 섹션secondfirst을 참조하세요.result

first, second

를 변환한 local_time sys_time결과를 제공합니다.

sys_seconds begin;
sys_seconds end;

반환 값

first 다음과 second 같이 설정 result 됩니다.

result first second
unique 변환되는 값을 local_time 포함합니다. sys_time 초기화되지 않은 0
nonexistent A sys_info 는 다음 바로 앞에 끝납니다. local_time 바로 뒤부터 시작하는 A sys_info 입니다 local_time.
ambiguous A sys_info 는 다음 직후에 끝납니다. local_time 바로 앞에 local_time시작되는 A sys_info 입니다.

ambiguous 결과 코드

일광 절약 시간에서 가을의 표준 시간으로 전환하는 동안 시계는 기본적으로 추가 시간을 얻습니다. 표준 시간으로 전환하는 것이 시간을 잃는 것을 의미하지 않기 때문에 혼란스러울 수 있습니다. 한 시간 뒤로 떨어지면 시계가 표준 시간에 맞게 조정된 후 전환 전 시간이 반복됩니다. 11월 첫 번째 일요일 오전 2:00에 발생하는 뉴욕의 표준시 변경 사항을 고려하세요. 첫째, 1:00am이 지갑니다. 오전 2시에 시계가 표준 시간으로 전환되므로 지금은 다시 오전 1:00입니다. 즉, 오전 1시에서 새벽 2시 사이의 시간은 "반복"되어 효과적으로 한 시간을 추가합니다. 예제는 ambiguous_local_time을 참조하세요.

local_time 이 "추가" 시간 동안 시간을 지정하는 경우 변환하는 방법은 명확하지 않습니다. 변환된 시간을 해당 시간이 발생하는 "첫 번째" 시간 또는 "두 번째"로 처리해야 하나요? 열거형을 지정하지 않은 경우 해당 열거 choose 형을 나타내 result 려면 다음으로 ambiguous설정해야 하며 first second 변환할 수 있는 시간에 local_time 대한 두 가지 선택 항목을 반영합니다.

nonexistent 결과 코드

봄에 표준 시간에서 일광 절약 시간으로 전환하는 동안 시계는 기본적으로 한 시간을 잃게됩니다. 일광 절약 시간제로 전환하는 것이 시간을 추가하는 것을 의미하지 않기 때문에 혼란스러울 수 있습니다. 한 시간에 "앞으로 스프링"하여 전환 후의 시간이 효과적으로 제거됩니다. 3월 두 번째 일요일 오전 2시에 발생하는 뉴욕의 일광 절약 시간제 변경 사항을 고려하세요. 오전 2시에 시계는 일광 절약 시간으로 전환되고 이제 오전 3:00을 읽습니다. local_time 예를 들어 변환되는 시간이 오전 2시 30분인 경우 해당 시간은 "제거"된 기간 중이므로 코드가 있을 nonexistent 것으로 예상 result 할 수 있습니다. 예제는 nonexistent_local_time을 참조하세요.

예: get a local_info

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    const auto& timeZoneDatabase = get_tzdb();
    const auto& currentZone = timeZoneDatabase.current_zone();

    local_time<system_clock::duration> lt = currentZone->to_local(system_clock::now());

    auto localInfo = currentZone->get_info(lt);

    std::cout << "local_time: " << lt << "\n";
    std::cout << localInfo << "\n";

    return 0;
}
local_time: 2021-09-08 15:37:57.6853963
result: unique, first: (begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT)

요구 사항

머리글: <chrono>

네임스페이스: std::chrono

컴파일러 옵션: /std:c++latest

<chrono>
ambiguous_local_time 예외
choose 열거형
file_clock 클래스
high_resolution_clock
local_t 구조체
non_existent 예외
system_clock 구조체
tai_clock 클래스
utc_clock 클래스
헤더 파일 참조