我需要使用 C 获取当前日期和时间。但是,我需要它是十六进制格式。他们是一个以十六进制返回时间戳的函数,还是我必须获取日期和时间并将其转换为十六进制?如果是这样,有人有 C 语言转换的示例吗?
最佳答案
您可以使用 localtime()
获取指向 tm
结构的指针,并从字段中获取所需的值。然后你可以使用 sprintf()
构建一个时间字符串:
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t raw_time = time(NULL);
struct tm *curr = localtime(&raw_time);
int year = curr->tm_year + 1900;
int month = curr->tm_mon + 1;
int day = curr->tm_mday;
int hour = curr->tm_hour;
int min = curr->tm_min;
int sec = curr->tm_sec;
char time_str[40];
sprintf(time_str, "%#x/%#x/%#x %#x:%#x:%#x",
year, month, day, hour, min, sec);
puts("Hex timestamp:");
puts(time_str);
sprintf(time_str, "%d/%d/%d %d:%d:%d",
year, month, day, hour, min, sec);
putchar('\n');
puts("Decimal timestamp:");
puts(time_str);
return 0;
}
示例输出:
Hex timestamp:
0x7e1/0x3/0x1f 0x14:0x2d:0x28
Decimal timestamp:
2017/3/31 20:45:40
关于c - 如何在 C 中获取十六进制日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43151692/