tm, time_t 转换

本文介绍了如何在C/C++中实现tm结构体与time_t类型之间的相互转换。包括将tm转换为time_t的方法,使用mktime函数;以及将time_t转换为tm的方法,通过调用localtime函数。

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

tm, time_t 转换

   //tm->time_t

   struct  tm tmDate;

   time_t time_tDate;

   memset(&tmDate,0,sizeof(tm));

   tmDate.tm_year -= 1900; //需要减去1900,否则mktime会返回-1

   tmDate.tm_mon -=1;

   time_tDate = mktime(&tmDate);

  

   //time_t->tm

   time_t tNow;

   struct tm tmlocal;

   time(&tNow);

   tmlocal = *localtime(&tNow);

转载于:https://www.cnblogs.com/fjchenqian/archive/2011/08/22/2149317.html

#include <stdio.h> #include <time.h> #include <string.h> #include "aip_common.h" #define ZERO (0) #define DEFAULT_YEAR (1900) #define DEFAULT_MON (1) #define HALFDAY (12) U4 main() { time_t u4_t_time_now = time(NULL); struct tm st_t_time_members; localtime_s(&st_t_time_members, &u4_t_time_now); // 中文星期数组 const U1* u1p_tp_cnweeks_members[] = { "日", "一", "二", "三", "四", "五", "六" }; // 英文月份数组 const U1* u1p_tp_enmonths_members[] = { "January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December" }; // 英文星期数组 const U1* u1p_tp_enweeks_members[] = { "Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday" }; // 日文星期数组 const U1* u1p_tp_jpweeks_members[] = { "日", "月", "火", "水", "木", "金", "土" }; // 格式1:2017年9月28日 星期四 14点26分13秒 printf("格式1:%d年%d月%d日 星期%s %d点%d分%d秒\n",st_t_time_members.tm_year + (U4)DEFAULT_YEAR, st_t_time_members.tm_mon + (U4)DEFAULT_MON, st_t_time_members.tm_mday,u1p_tp_cnweeks_members[st_t_time_members.tm_wday], st_t_time_members.tm_hour, st_t_time_members.tm_min, st_t_time_members.tm_sec); // 格式2:2017/9/28 星期四 14:26:13 printf("格式2:%d/%d/%d 星期%s %d:%02d:%02d\n",st_t_time_members.tm_year + (U4)DEFAULT_YEAR, st_t_time_members.tm_mon + (U4)DEFAULT_MON, st_t_time_members.tm_mday,u1p_tp_cnweeks_members[st_t_time_members.tm_wday], st_t_time_members.tm_hour, st_t_time_members.tm_min, st_t_time_members.tm_sec); // 格式3:2017/9/28 星期四 2:26:13(PM) U4 u4_t_time_halfday = st_t_time_members.tm_hour % (U4)HALFDAY; if ( (U4)ZERO == u4_t_time_halfday) { u4_t_time_halfday = (U4)HALFDAY; } else { } const U1* ampm_str; if ((U4)HALFDAY <= st_t_time_members.tm_hour) { ampm_str = "PM"; } else { ampm_str = "AM"; } printf("格式3:%d/%d/%d 星期%s %d:%02d:%02d(%s)\n",st_t_time_members.tm_year + (U4)DEFAULT_YEAR, st_t_time_members.tm_mon + (U4)DEFAULT_MON, st_t_time_members.tm_mday,u1p_tp_cnweeks_members[st_t_time_members.tm_wday], u4_t_time_halfday, st_t_time_members.tm_min, st_t_time_members.tm_sec,ampm_str); // 格式4:Thursday, September 28, 2017 14:26:13 printf("格式4:%s, %s %d, %d %02d:%02d:%02d\n",u1p_tp_enweeks_members[st_t_time_members.tm_wday],u1p_tp_enmonths_members[st_t_time_members.tm_mon], st_t_time_members.tm_mday, st_t_time_members.tm_year + (U4)DEFAULT_YEAR,st_t_time_members.tm_hour, st_t_time_members.tm_min, st_t_time_members.tm_sec); // 格式5:2017年9月28日(木) 2:26:13(PM) if ((U4)HALFDAY <= st_t_time_members.tm_hour) { ampm_str = "PM"; } else { ampm_str = "AM"; } printf("格式5:%d年%d月%d日(%s) %d:%02d:%02d(%s)\n",st_t_time_members.tm_year + (U4)DEFAULT_YEAR, st_t_time_members.tm_mon + (U4)DEFAULT_MON, st_t_time_members.tm_mday, u1p_tp_jpweeks_members[st_t_time_members.tm_wday], u4_t_time_halfday, st_t_time_members.tm_min, st_t_time_members.tm_sec,ampm_str); return ZERO; } 给数组加上初始化函数
最新发布
08-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值