나는 boost :: date_time을 사용하여 변환을 수행하는 방법을 고민하고있다. 유닉스 시대 (1970 년 1 월 1 일 00:00)에서 측정 한 밀리 초 값을 사람이 읽을 수있는 문자열로 변환하려고합니다. 2/13/2012 15:20:11
이 이상적입니다.밀리 초 UTC를 사람이 읽을 수있는 날짜로 변환하기 Date_Time
나는 몇 가지 std C++/boost 제안을 시도했지만, 아직 어떤 행운은 없었습니다. 여기에 내가 코드를 사용한다 :
long long ticksFromEpoch = 1329117220501;
std::time_t tt = static_cast<time_t>(ticksFromEpoch);
boost::posix_time::ptime dt = boost::posix_time::from_time_t(tt);
// Create a time_zone_ptr for the desired time zone and use it to create a local_date_time
boost::local_time::time_zone_ptr zone(new boost::local_time::posix_time_zone("UTC"));
boost::local_time::local_date_time dt_with_zone(dt, zone);
std::stringstream strm;
strm.imbue(std::locale(std::cout.getloc(), new boost::local_time::local_time_facet("%Y-%m-%d %H:%M:%S"))); // 15:14
strm << dt_with_zone;
// Print the stream's content to the console
std::cout << strm.str() << std::endl;
출력은 다음과 같습니다 분명히 잘못된 것입니다 2032-07-01 20:20:37
. 나는 ticksFromEpoch
변수를 올바로 생성하지 않는다고 의심하지만 왜 그런지는 잘 모르겠습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 어떤 도움을 많이 주시면 감사하겠습니다 !!
부스트 솔루션 [1] [1] : http://stackoverflow.com/questions이 같은 것을 사용해야 할 수도 있습니다/8916071/conversion-datetime-to-c-boost/9274998 # 9274998 –