QDateTime :: fromstring(__DATE __,“MMM d yyyy”)返回无效

时间:2013-07-04 14:24:18

标签: c++ qt visual-c++

使用QDateTime :: fromstring()解析MSVC ++预定义__DATE__(可能与__TIME__)宏一起返回任何内容(=无效的QDateTime对象)。为什么呢?

2 个答案:

答案 0 :(得分:4)

来自http://msdn.microsoft.com/en-us/library/b0084kay%28v=vs.80%29.aspx

  

DATE 当前源文件的编译日期。日期   是Mmm dd yyyy形式的字符串文字。月份名称Mmm是   与声明的库函数asctime生成的日期相同   在TIME.H。

dd部分似乎充满了领先的空间,持续了1到9天。

QtDateTime::fromstring()仅支持

d   the day as number without a leading zero (1 to 31)
dd  the day as number with a leading zero (01 to 31)

一种解决方案可能是在解析之前从__DATE__字符串中删除重复的空格,例如使用QString::replace(" ", " ")并使用单个d解析当天。

答案 1 :(得分:2)

QLocale("en_US").toDate(QString(__DATE__).simplified(), "MMM d yyyy");