源码:
#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(<);
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;
}
运行:
root@ubuntu:/home/utc_test# ./test
181104221257
root@ubuntu:/home/utc_test#