C语言 时间转换成字符串输出

时间转换成字符串输出

在项目中需要将时间转成字符串,以cjson格式进行传输,查找了好多资料,C语言没有将时间直接转换成特定格式的函数,所以就自己大概写了一份,提供出来。

后续有必要cjson进行数据打包以及解包也会发出来

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define ALLTime   0
#define BIGTime   1
#define SMALLTime 2

typedef struct 
{
	int year;
	int mon;
	int day;
	int hour;
	int min;
	int sec;
}TIMEA;
void zhutime(int time,char *strtime)
{
	int num=0;
	char *timeb;
	int p,c;
	if(time<10)
	{
		num=1;
		strcat(strtime,"0");
	}
	else{num=2;}
	timeb=ecvt(time,num,&p,&c);
	//这个是浮点型转字符,由于验证是在Linux上进行,Linux上没有包含itoa函数库,如果在其他平台使用,可以更改自己验证
	strcat(strtime,timeb);
}
char* TimeToStr(TIMEA timea,unsigned char flag,char *big,char*small)
{
	int p,c;
	int num=0;
	char *timebr;
	char Time[20];
	char bigtime[20];
	char smalltime[20];
	num=4;
	timebr=ecvt(timea.year,num,&p,&c);
	stpcpy(bigtime,timebr);
	strcat(bigtime,big);
	zhutime(timea.mon,bigtime);
	strcat(bigtime,big);
	zhutime(timea.day,bigtime);
	
	zhutime(timea.hour,smalltime);
	strcat(smalltime,small);
	zhutime(timea.min,smalltime);
	strcat(smalltime,small);
	zhutime(timea.sec,smalltime);
	
	if(flag==BIGTime)
	{
		stpcpy(Time,bigtime);	
	}
	else if(flag==SMALLTime)
	{
		stpcpy(Time,smalltime);	
	}
	else
	{
		stpcpy(Time,bigtime);
		strcat(Time," ");
		strcat(Time,smalltime);
	}
	printf("bigtime=%s,\n",bigtime);
	printf("smalltime=%s,\n",smalltime);
	timebr=Time;
	return timebr;
}

int main()
{
	TIMEA timea;
	char * ctime;
	timea.year=2022;
	timea.mon=5;
	timea.day=27;
	timea.hour=11;
	timea.min=3;
	timea.sec=40;
	ctime=TimeToStr(timea,ALLTime,"-",":");
	printf("\ntime ctime=\"%s\"\n",ctime);
}

可以根据自己需要选择要年月日  还是时分秒。

也可以自己设置年月日之间的分隔符以及时分秒的分隔符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值