我正在使用我的新應用程序遷移我的舊應用程序數據庫。舊的應用程序使用QT,新的應用程序沒有。如何從使用QDateTime ISODate格式創建的字符串創建boost :: posix_time :: ptime對象?
我想將已存儲在數據庫中的日期轉換爲boost :: posix_time :: ptime對象。日期通過將ISDate格式的QDateTime對象轉換爲字符串而存儲在數據庫中。
因此,源字符串具有以下格式:
YYYY-MM-DDTHH:MM:SSSZ
有來自QDateTime字符串的簡單程序可用來產生ptimes?我已經嘗試過posix_time :: from_iso_string,但是由於在日期中存在' - '分隔符(可能':'分隔符也是一個問題),因此失敗。
您可能只需編寫自己的解析器。這些字符串是否都以這種方式嚴格格式化?在這種情況下,如果你可以忍受它,你可以使用像sscanf這樣的東西,或者從頭開始編寫一個簡單的解析器。或使用boost正則表達式。提升精神可能是矯枉過正,會導致編譯時間痛苦,但在其他方面很好。 – Pete
或者只是去掉不需要的字符串並使用from_iso_string。 – Pete
你是怎麼得到ISO日期的?我可以在'QDateTime'上找到'toString'方法。 –