【发布时间】:2013-05-30 22:46:20
【问题描述】:
我正在使用我的新应用迁移旧应用数据库。旧应用使用 QT,新应用不使用。
我想将已存储在数据库中的日期转换为 boost::posix_time::ptime 对象。通过将 QDateTime 对象转换为 ISODate 格式的字符串,将日期存储在数据库中。
因此,源字符串具有以下格式:
YYYY-MM-DDTHH:MM:SSSZ
是否有一个简单的例程可用于从 QDateTime 字符串生成 ptime?我已经尝试过 posix_time::from_iso_string,但是由于日期中存在“-”分隔符而失败(并且可能“:”分隔符也是一个问题)。
【问题讨论】:
-
您可能只需要编写自己的解析器。字符串都是这样严格格式化的吗?在这种情况下,如果你能忍受它,你可以使用类似 sscanf 的东西,或者只是从头开始编写一个简单的解析器。或使用提升正则表达式。 boost 精神可能是矫枉过正,会导致痛苦的编译时间,但在其他方面很好。
-
或者只是去掉不需要的字符的字符串并使用 from_iso_string。
-
你到底是怎么得到iso日期的?我可以在
QDateTime上找到toString方法。