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
없습니다.ambiguous
local_time
: 일광 절약 시간과 표준 시간 사이의 전환 중에 토지를 두sys_time
값으로 변환할 수 있습니다.
설명
에 따라 설정되는 방법 first
및 second
설정에 대한 자세한 내용은 다음 섹션second
first
을 참조하세요.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
클래스
헤더 파일 참조