学习总结——时间戳转日期

文章目录

1. 时间戳转日期

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

int main () {

	time_t PTime = 0;
	time_t time = 1670841720; // 时间戳,可以用time(&mytime);获取当前时间戳
	struct tm* timeP;
	char date1[40];
	int point = 0;

	/*利用东八区(北京时间,其他国家,美国,英国等,需要相应的进行加或者减X小时),        则真正的换算时间戳为*/

	PTime = time;
	timeP = localtime(&PTime);    // 转换
	
	// 年 
	int year = 1900+ timeP->tm_year;
	point = 3;
	while(year){
		int num = year % 10;
		date1[point --] = num + '0';
		year /= 10;
	}
	date1[4] = '-';
	
	// 月 
	int month = 1+ timeP->tm_mon;
	if (month < 10) date1[5] = '0';
	point = 6;
	while(month){
		int num = month % 10;
		date1[point --] = num + '0';
		month /= 10;
	}
	date1[7] = '-';
	
	// 日 
	int day = timeP->tm_mday;
	if (day < 10) date1[8] = '0';
	point = 9;
	while(day){
		int num = day % 10;
		date1[point --] = num + '0';
		day /= 10;
	}
	date1[10] = ' ';
	
	// 时 
	int hour = timeP->tm_hour;
	if (hour < 10) date1[11] = '0';
	if(!hour) date1[12] = '0';
	point = 12;
	while(hour){
		int num = hour % 10;
		date1[point --] = num + '0';
		hour /= 10;
	}
	date1[13] = ':';
	
	// 分 
	int min = timeP->tm_min;
	if (min < 10) date1[14] = '0';
	if (!min) date1[15] = '0';
	point = 15;
	while(min){
		int num = min % 10;
		date1[point --] = num + '0';
		min /= 10;
	}
	date1[16] = ':';
	
	// 秒 
	int sec = timeP->tm_sec;
	if (sec < 10) date1[17] = '0';
	if (!sec) date1[18] = '0';
	point = 18;
	while(sec){
		int num = sec % 10;
		date1[point --] = num + '0';
		sec /= 10;
	}
	date1[19] = '\0';
	printf("%s", date1);  
	        
	/*printf("%d/%d/%d %d:%d:%d\n",1900+ timeP->tm_year,1+ timeP->tm_mon,
	       timeP->tm_mday, timeP->tm_hour, timeP->tm_min, timeP->tm_sec);*/
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值