C++ C++;为buildtime获取QDateTime的可靠方法

C++ C++;为buildtime获取QDateTime的可靠方法,c++,qt,datetime,qdatetime,C++,Qt,Datetime,Qdatetime,关于\uuuu日期\uuuuu 我想使用\uuuu DATE\uuuu来获取构建时间。 该产品将在具有不同语言环境的系统上编译。 \uuuu日期\uuuu的格式是否始终相同? 我的目标是从\uuuu DATE\uuuu获取构建时间,我希望确保它在任何系统上都能工作。 目前我使用: QDateTime(QLocale("en_US").toDate(QString(__DATE__).simplified(), "MMM d yyyy")).toMSecsS

关于
\uuuu日期\uuuuu

我想使用
\uuuu DATE\uuuu
来获取构建时间。 该产品将在具有不同语言环境的系统上编译。
\uuuu日期\uuuu
的格式是否始终相同? 我的目标是从
\uuuu DATE\uuuu
获取构建时间,我希望确保它在任何系统上都能工作。 目前我使用:

QDateTime(QLocale("en_US").toDate(QString(__DATE__).simplified(), "MMM d yyyy")).toMSecsSinceEpoch();
获取构建时间的日期时间。 但是,在这种情况下是否可能不起作用,例如,
\uuu DATE\uuuu
是否可能不返回
2020年7月14日
,而是以本地格式(如中文)返回? 如果最后一种情况是过时的方法将不能正常工作?

< P>从C++标准(草案):

\uuuuu日期

源文件的翻译日期:字符串文字 格式为“Mmm dd yyyy”,其中月份名称相同 由
asctime
函数生成的,以及
dd
如果值小于10,则为空格字符。如果 翻译不可用,实现定义了有效日期 应提供

最后一句话给了编译器一些自由,如果日期不可用该怎么办GCC这样做:

如果GCC无法确定当前日期,它将发出警告 消息(每次编译一次)和
日期将扩展到
“??”

总结-格式是固定的,它始终是代码>“MMM DD YYY”< /代码>,使用英文名称。

< P>从C++标准(草案):

\uuuuu日期

源文件的翻译日期:字符串文字 格式为“Mmm dd yyyy”
,其中月份名称相同 由
asctime
函数生成的,以及
dd
如果值小于10,则为空格字符。如果 翻译不可用,实现定义了有效日期 应提供

最后一句话给了编译器一些自由,如果日期不可用该怎么办GCC这样做:

如果GCC无法确定当前日期,它将发出警告 消息(每次编译一次)和
日期将扩展到
“??”


总而言之,格式是固定的,始终是
“Mmm dd yyy”
,使用英语名称。

谢谢,但是如果地区不是英语,Mmm不会根据地区给出月份,。所以不是七月七月 如果地点是中文?还是总是用英语
asctime
返回三个字母的英文缩写月份名称。总是有人会创建自己的编译器,在那里返回的名字将在另一种语言(如中文),但它不再是标准的C++。谢谢,但是如果区域不是英语,那么,MMM给出基于区域的月份。所以不是七月七月 如果地点是中文?还是总是用英语
asctime
返回三个字母的英文缩写月份名称。总有人会创造一个他或她自己的编译器,在那里返回的名字将在另一种语言(像中文),但它不是一个标准的C++。