时间戳转换为日期格式 C/C++ 学习日记 新手讲解

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//时间戳转换为日期格式
void timestampToTime(char* timeStamp, char* dateTime, int dateTimeSize)
{
	time_t tTimeStamp = atoll(timeStamp);
	struct tm* pTm = gmtime(&tTimeStamp);
	strftime(dateTime, dateTimeSize, "%Y-%m-%d %H:%M:%S", pTm);
}

这是一个时间戳转换为日期格式函数
将timeStamp(时间戳)进行转化后赋值给 dateTime(日期格式)
dateTimeSize为最终结果可存放的字符数。(赋值32,暂可不管)

分解看:

time_t tTimeStamp = atoll(timeStamp);

time_t 的本质(数据类型)为long long类型(长整型)
atoll函数:将字符串转化为long long类型变量

struct tm* pTm = gmtime(&tTimeStamp);

tm 结构的指针,该结构带有被填充的时间信息(见附录)
gmtime 获取 GMT 时间 填充到 结构体 tm 中

strftime(dateTime, dateTimeSize, "%Y-%m-%d %H:%M:%S", pTm);

dateTime中存放dateTimeSize个字符。
该函数返回向dateTime指向的字符串。
"%Y-%m-%d %H:%M:%S"为输出格式,pTm为被提取的时间信息。

附录:
atolll函数使用实例
atolll函数使用实例

struct tm {
   int tm_sec;         /* 秒,范围从 0 到 59                */
   int tm_min;         /* 分,范围从 0 到 59                */
   int tm_hour;        /* 小时,范围从 0 到 23                */
   int tm_mday;        /* 一月中的第几天,范围从 1 到 31                    */
   int tm_mon;         /* 月份,范围从 0 到 11                */
   int tm_year;        /* 自 1900 起的年数                */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */
   int tm_isdst;       /* 夏令时                        */    
};

tm 结构的指针,该结构带有被填充的时间信息

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值