当前位置: 技术问答>linux和unix
mac os下编译linux项目程序时发现的clang兼容性问题
来源: 互联网 发布时间:2017-05-12
本文导语: #include #include #include int main(int argc, const char *argv[]) { char szDateNow[20]; struct tm curtime; time_t t = time( NULL ); //get systime localtime_r( &t, &curtime); //转换时间格式 strftime( szDateNow, sizeof(sz...
#include
#include
#include
int main(int argc, const char *argv[])
{
char szDateNow[20];
struct tm curtime;
time_t t = time( NULL ); //get systime
localtime_r( &t, &curtime); //转换时间格式
strftime( szDateNow, sizeof(szDateNow), "%Y-%m", &curtime);
printf("%%Y-%%m is %s.n", szDateNow);
strftime( szDateNow, sizeof(szDateNow), "%04Y-%02m", &curtime);
printf("%%04Y-%%02m is %s.n", szDateNow);
exit(0);
}
如上所示代码,在linux下使用gcc编译,输出结果为:
%Y-%m is 2014-01.
%04Y-%02m is 2014-01.
在mac os 10.9.1下使用clang编译,输出结果为:
%Y-%m is 2014-01.
%04Y-%02m is 4Y-2m.
请问大家一个问题,如果我要输出02Y-02m即两位年两位月改怎么做,输出四位自己截取这个不要提了
|
这个字段宽度的设置是一个GNU扩展,不过我看了苹果的strftime的代码,似乎已经加上了这个GNU扩展的支持。不过其实你加不加都一样。因为%Y就是4位的,%m也是补0的2位
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。