本文介绍了QDateTime::fromstring( __DATE__, "MMM d yyyy") 返回无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Parsing the MSVC++ predefined __DATE__ (maybe in conjunction with __TIME__) macro with QDateTime::fromstring() returns nothing (= an invalid QDateTime object). Why?

推荐答案

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

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

dd 部分似乎填充了第 1..9 天的前导空格.

The dd part seems to be filled with a leading space for days 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 解析当天.

One solution might be to remove duplicate spaces from the __DATE__ string prior to parsing, e.g. with QString::replace(" ", " ") and parse the day with the single d.

这篇关于QDateTime::fromstring( __DATE__, "MMM d yyyy") 返回无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-20 23:14