2010-01-25 4 views
3

에서 나는 다음 시간이 : 내가 MS에서 타임 스탬프로 변환 할특정 시간대 부스트 :: posix_time ::의 Ptime

2010-01-25 03:13:34.384 - GMT Time Zone 
2010-01-25 11:13:34.384 - My Local 

합니다. 난 단지 발신자 에서 현지 시간 문자열을 얻기 때문에, 나는 이런 식으로한다면 ": 13 2010-01-25 11 34.384"

:

// ts is "2010-01-25 11:13:34.384" (My Local) 
boost::posix_time::ptime t(boost::posix_time::time_from_string(ts)); 
boost::posix_time::ptime end(boost::gregorian::date(1970,1,1)); 
boost::posix_time::time_duration dur = t - end; 
// epoch is 1264418014384 
// 2010-01-25 11:13:34.384 (GMT) -- But I want 2010-01-25 03:13:34.384 
// 2010-01-25 19:13:34.384 (My Local) -- But I want 2010-01-25 11:13:34.384 
long long epoch = dur.total_milliseconds(); 

부스트를 알 수있는 방법이 있나요 : : posix_time,받은 문자열이 내 로컬 시간대에 속해 있습니까?

답변

2

:

/// wall-clock translation to UTC 
    const ptime from_wall_clock(const ptime& value, 
           const time_zone_ptr& from) 
    { 
     assert(from.get()); 

     // interpret as local time 
     const local_date_time from_local(value.date(), 
      value.time_of_day(), from, 
      local_date_time::NOT_DATE_TIME_ON_ERROR); 

     // get UTC 
     return from_local.utc_time(); 
    } 
+2

내가 알 수있을 어떻게 당신을 당신이하려는 것과 매우 유사한 문서의 예제가있다 현재 시간대를 얻으시겠습니까? –

+0

TZ 환경 변수에 보관하십시오. –

관련 문제