标准格式与时间戳互转

在嵌入式开发中,经常需要进行时间格式转换

1.时间戳 1345302987 转换成标准格式的时间 “2012/08/18 23:16:27”

#include <stdio.h>  
#include <time.h>  

int main ()
{
    time_t rawtime;
    struct tm * timeinfo;
    char buffer [128];

    //time (&rawtime);
    //printf("%ld\n", rawtime);
    printf("请输入时间戳:");
	scanf("%d",  &rawtime);
	
    timeinfo = localtime (&rawtime);
    strftime (buffer,sizeof(buffer),"Now is %Y/%m/%d %H:%M:%S",timeinfo);
    printf("%s\n", buffer);

    return 0;
}

strftime();函数可参考:https://blog.csdn.net/weixin_42868654/article/details/88183538

2.标准格式的时间 “2011/11/11 11:11:11”或“2011-11-11 11:11:11” 转换时间戳 1320981071

#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>
 
long GetTick(char *str_time)
{
    struct tm stm;
    int iY, iM, iD, iH, iMin, iS;
 
    memset(&stm,0,sizeof(stm));
 
    iY = atoi(str_time);
    iM = atoi(str_time+5);
    iD = atoi(str_time+8);
    iH = atoi(str_time+11);
    iMin = atoi(str_time+14);
    iS = atoi(str_time+17);
 
    stm.tm_year=iY-1900;
    stm.tm_mon=iM-1;
    stm.tm_mday=iD;
    stm.tm_hour=iH;
    stm.tm_min=iMin;
    stm.tm_sec=iS;
 
    return mktime(&stm);
}
 
int main()
{
    char str_time[19];
 
    printf("请输入时间:"); 
 
    gets(str_time);
 	printf("%s\n", str_time);				//2011/11/11 11:11:11
    printf("%ld\n", GetTick(str_time));		//1320981071 = 2011/11/11 11:11:11
 
    return 0;    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值