1
我正在阅读来自PostgreSQL数据库的时间戳字段。如何强制boost :: posix_time识别时区?
my_timestamp TIMESTAMP WITH TIME ZONE DEFAULT NOW()
从数据库中读取数据时,我将其转换为升压时间戳是这样的::
boost::posix_time::ptime pt(boost::posix_time::time_from_string(str));
这个问题似乎是boost::posix_time::time_from_string()
忽略了时区的时间戳列定义。
例如:
database text string == "2013-05-30 00:27:04.8299-07" // note -07 timezone
boost::posix_time::to_iso_extended_string(pt) == "2013-05-30T00:27:04.829900"
当我用所得的ptime对象算术,时间是关闭的恰好7小时。有没有更好的我应该做的,不要失去时区信息?
我不跟着你。如何将带时区信息的文本字符串转换为boost :: local_date_time?我看到接受一个字符串的唯一函数是boost :: posix_time :: time_from_string(),它似乎放弃了时区信息。 –
检查我的编辑,请看 –
我知道你从boost文档中获得了哪些内容,但我无法弄清楚如何使其工作。 svp参数来自哪里?来自Boost的示例仅显示此分析日期,而不是时间戳。 –