:
#include <boost/date_time/local_time/local_time.hpp>
#include <locale>
static boost::local_time::time_zone_ptr const s_timezone(new boost::local_time::posix_time_zone("+02:00"));
std::string mydateformat(boost::local_time::local_date_time const& ldt)
{
using namespace boost;
std::ostringstream ss;
boost::local_time::local_time_facet* output_facet = new boost::local_time::local_time_facet();
ss.imbue(std::locale(std::locale::classic(), output_facet));
output_facet->format("%Y-%m-%dT%H:%M:%s%q");
ss.str("");
ss << ldt;
return ss.str();
}
std::string mydateformat()
{
using namespace boost;
posix_time::ptime my_ptime = posix_time::second_clock::universal_time();
local_time::local_date_time ldt(my_ptime, s_timezone);
return mydateformat(ldt);
}
int main()
{
using namespace boost;
gregorian::date d(2014, 5, 12);
posix_time::time_duration td(16, 14, 1, 809000);
local_time::local_date_time ldt(d, td, s_timezone, false/*daylight savings*/);
std::cout << mydateformat(ldt) << "\n";
assert("2014-05-12T16:14:01.809000+0200" == mydateformat(ldt));
}
감사합니다, 그것은 내가 정말 아니다 그럼 내가이해야 할 것은이 프로토 타입으로 함수를 작성하는 것입니다 원하지만 내가 원하는 것을 설명하는 내 잘못이 될 수 있습니다. 그것은 실제 솔루션을 찾는데 도움이 될 수 있습니다. 더 자세한 내용으로 내 질문을 업데이트합니다. – user3807511
@ user3807511'ptime'에서'local_date_time'을 얻는 방법이 이미 표시되어 있습니다 ('mydateformat'의 두 번째 오버로드!). "시스템 시간대"로 변환하려면 설명서를 참조하십시오. 그러나 시스템 시간대를 신뢰하면 보안 상 취약 할 수 있습니다. – sehe
문자열''+02 : 00 "'을 포함하는 표현식에서'utc_time_zone'이 초기화 된 이유를 설명 할 수 있습니까? –