C语言之自定义 DATE 格式

本文介绍了在C语言中如何自定义DATE格式,通过转换DATE宏为time_t类型,实现日期显示的个性化,适用于Qt等开发环境。示例代码展示了转换过程,并分享了相关人工智能教程资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                       

C语言之自定义DATE格式

DATE的好用之外不用再特意说明,比如某个程序编译时间需要显示出来,那么就不需要每编译一次都改一次时间。

比如今天是2015-07-03,那么DATE宏会输出Jul 03 2015,比如我想要一个2015/07的效果。但是并不支持自定义,使用Different format of DATE macro可以改变显示的顺序,但是并不能将Jul改成07。发现有Convert string from DATE into a time_t可以实现将DATE改为time_t,如下代码:

/** * @brief getDateFromMacro * @param time __DATE__ * @return */static time_t getDateFromMacro(char const *time) {    char s_month[5];    int month, day, year;    struct tm t = {0};    static const char month_names[] = "JanFebMarAprMayJunJulAugSepOctNovDec";    sscanf(time, "%s %d %d", s_month, &day, &year);    month = (strstr(month_names, s_month)-month_names)/3;    t.tm_mon = month;    t.tm_mday = day;    t.tm_year = year - 1900;    t.tm_isdst = -1;    return mktime(&t);}
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

转换成time_t后,就已经基本上大路了。比如用在Qt开发中可以转换成任意类型。

QDateTime dt = QDateTime::fromTime_t( (uint)getDateFromMacro(__DATE__));this->setWindowTitle("HELLO WORLD " + tr("(") + dt.toString("yyyy/MM") + tr(")"));
  
  • 1
  • 2

显示效果为:
这里写图片描述

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值