1. 程式人生 > >linux-c獲取utc時間,並轉為BCD碼格式

linux-c獲取utc時間,並轉為BCD碼格式

原始碼:

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

void UtcBcdTime(char* utc_buf)
{
        time_t lt=0;   
        lt = time(NULL);
        struct tm * tmp_localtime = localtime(&lt);
        utc_buf[0]=(unsigned char)((((tmp_localtime->tm_year-100)/10)<<4)|((tmp_localtime->tm_year-100)%10));
        utc_buf[1]=(unsigned char)((((1+tmp_localtime->tm_mon)/10)<<4)|((1+tmp_localtime->tm_mon)%10));
        utc_buf[2]=(unsigned char)((((tmp_localtime->tm_mday)/10)<<4)|((tmp_localtime->tm_mday)%10));
        utc_buf[3]=(unsigned char)((((tmp_localtime->tm_hour)/10)<<4)|((tmp_localtime->tm_hour)%10));
        utc_buf[4]=(unsigned char)((((tmp_localtime->tm_min)/10)<<4)|((tmp_localtime->tm_min)%10));
        utc_buf[5]=(unsigned char)((((tmp_localtime->tm_sec)/10)<<4)|((tmp_localtime->tm_sec)%10));
}

int main()
{
	int i;
	char utc_buf[6] ={0};
	UtcBcdTime(utc_buf);
	for( i=0;i<sizeof(utc_buf);i++)
	{
		printf("%02x",utc_buf[i]);
	}
	printf("\n");
	return 0;

}

執行:

[email protected]:/home/utc_test# ./test
181104221257
[email protected]:/home/utc_test# 

參考連結:
https://www.cnblogs.com/shiyk/p/9339627.html