You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请问C语言中local->tm_mday在时间处理中的含义是什么?

关于C语言中local->tm_mday的解释

这段代码是通过C标准库的时间函数获取当前本地时间的年、月、日,各部分含义如下:

time_t my_time = time(NULL);
struct tm *local = localtime(&my_time);
 
day = local->tm_mday;            
month = local->tm_mon + 1;       
year = local->tm_year + 1900; 
  • time_t my_time = time(NULL);:获取当前Unix时间戳(从1970年1月1日00:00:00 UTC到此刻的总秒数)
  • struct tm *local = localtime(&my_time);:将Unix时间戳转换为本地时区的时间结构体struct tm,这个结构体把时间拆分成了单独的字段

针对你疑问的字段:

  • local->tm_mday:直接存储当前月份的具体日期(几号),取值范围是1到31,比如当月15号这个值就是15,不需要额外调整就能用
  • local->tm_mon:存储的是月份,但取值范围是0到11(0对应1月,11对应12月),所以要加1才能得到日常使用的1-12月格式
  • local->tm_year:存储的是从1900年开始计算的年份偏移量,比如2024年这个值是124,加1900后才是实际的年份数值

举个实际例子:如果当前是2024年5月20日,那么:

  • local->tm_mday的值为20
  • local->tm_mon的值为4,加1后得到5
  • local->tm_year的值为124,加1900后得到2024

内容的提问来源于stack exchange,提问作者Nozakai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:35:53