__DATE__宏的格式不同

C有一个预定义的宏__DATE__ ,它显示已编译源文件的日期。
日期以“Mmm dd yyyy”格式显示。

有没有办法使用宏格式化这个日期?
以这种格式“yyyy Mmm dd”

而不是:

2013年7月19日

应该 :

2013年7月19日

在C中,您可以拥有一个宏,可以动态生成具有您喜欢的顺序的复合文字,例如

 #define FDATE (char const[]){ __DATE__[7], __DATE__[8], ..., ' ', ... , '\0' } 

在所有重要的地方,优化器应该能够有效地处理这个问题。

这是一个真正的黑客:

 union { const char DOUBLE_DATE[18]; const char PAD[19]; } DATE_HELPER = { __DATE__ " " __DATE__ }; const char *MY_DATE = DATE_HELPER.DOUBLE_DATE + 7;