我正在尝试将UTC时间转换为自定义时区。我已经在这里和那里阅读了很多关于它的问题,但它们似乎都反过来,或者使用时间调整器,你无法设置时区。到目前为止,我已经设法做到了:
boost::local_time::time_zone_ptr time_zone(new boost::local_time::posix_time_zone("EST5EDT,M3.2.0,M11.1.0"));
boost::posix_time::ptime const now(boost::gregorian::date(2004,11,5), boost::posix_time::hours(10));
boost::local_time::local_date_time const ny(now, time_zone );
//
ny.utc_time().time_of_day(); // Expected: 10:00 Actual: 10:00
ny.local_time().time_of_day(); // Expected: 04:00 Actual: 16:00
我希望ny.local_time()显示为04:00,因为当UTC时间是10:00时,它是纽约的4:00。
有人能建议正确的方法吗?
答案 0 :(得分:2)
升级库似乎解释了"偏移"作为添加到UTC以获取当地时间的金额;而标准的POSIX约定则相反。将其更改为
"EST-5EDT,M3.2.0,M11.1.0"
^