아마도이 free, open source, C++11/14 timezone library이 도움이 될 수 있습니다. 이를 사용하여 UTC를 현지 표준 시간대로 변환하거나 임의의 값으로 변환하거나 임의의 값으로 변환 할 수 있습니다. IANA timezone 또는 임의의 두 값 사이에서 임의로 IANA timezones 사이에서 변환 할 수 있습니다. 라이브러리가 gcc, clang 및 VS로 포팅되었습니다. 하지만 <chrono>
이 필요합니다.
다음은 현재 UTC 시간을 가져 와서이를 베를린 현지 시간으로 변환 한 다음 베를린 현지 시간을 현지 시간으로 변환 한 다음 베를린 현지 시간을 UTC로 다시 변환하는 간단한 예제입니다. 그것은 현대 C를 사용하여, 모든 매우 쉽습니다 ++ 구문과 유형 안전 :
#include "tz.h"
#include <iostream>
int
main()
{
using namespace date;
using namespace std::chrono;
auto utc = system_clock::now();
auto berlin = make_zoned("Europe/Berlin", utc);
auto local = make_zoned(current_zone(), berlin);
auto utc2 = berlin.get_sys_time();
std::cout << format("%F %T %Z", utc) << '\n';
std::cout << format("%F %T %Z", berlin) << '\n';
std::cout << format("%F %T %Z", local) << '\n';
std::cout << format("%F %T %Z", utc2) << '\n';
}
나를 위해이 단지 출력 :
2016-07-05 01:41:29.207335 UTC
2016-07-05 03:41:29.207335 CEST
2016-07-04 21:41:29.207335 EDT
2016-07-05 01:41:29.207335 UTC
예, 당신도 어떤 정밀 당신의 std::chrono::sytem_clock
지원과 시간대를 전환하고, 분석 할 수 그 정밀도를 형식화하십시오.
이 라이브러리가 문제가 있으면 스택 넘침 또는 chat here 또는 open an issue here에 대한 도움을 받으시거나 내 이메일 주소를 검색하여 저에게 직접 연락하십시오.
이 라이브러리는 완벽하게 문서화되었으며 최신 IANA timezone database으로 최신 상태로 유지되도록 설계되었습니다 (latest mess the Egyptian politicians have made이 필요하더라도 3 일 사전 예고없이 시간대 규칙이 변경됨). 타임 스탬프가 오래 되었다면 (1940 년대부터) 걱정하지 마십시오. 이 라이브러리는 IANA이 제공하는 전체 시간대 기록을 완벽하게 지원합니다. 즉, IANA timezone database에 데이터가 있으면이 라이브러리가 오류없이 추출하여 사용합니다.
귀하의 신청서에 도움이되는 경우 베를린 지역의 날짜 리터럴을 쉽고 효율적으로 작성할 수 있습니다. 예를 들어, 여기 베를린 7 월 2016 첫 번째 월요일에 15시 반을 지정합니다 어떻게 (<chrono>
리터럴 필요한 C++ 14) :
auto meet = make_zoned("Europe/Berlin", local_days{2016_y/jul/mon[1]} + 15h + 30min);
std::cout << meet << '\n';
출력 :
2016-07-04 15:30:00 CEST
당신이 원하는 경우
std::cout << make_zoned("America/New_York", meet) << '\n';
출력 :
0 알아은 몇시에 뉴욕 사무소는이 회의에서 재택 근무한다
희망이 도움이됩니다.
[가능한 복제본] (http://stackoverflow.com/questions/761791/converting-between-local-times-and-gmt-utc-in-c-c). Google은 귀하의 친구입니다. –
당신이 제안하는 주제가 다릅니다. 그리고 나는 묻기 전에 봤다. – user14416
(질문 자체에서) 주제가 다른 이유는 무엇입니까? –