c - 如何在 C 中获取十六进制日期和时间

标签 c date time hex

我需要使用 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/

相关文章:

c - 如何在 C 中获取命令行参数并评估为 int 或 double 时检查边缘情况?

python - 计时功能

mysql - 显示 MySQL 中不完整日期列表中的前一个日期

java - 如何将时间戳字符串转换为本地时间字符串?

c - 将时间和日期添加到文件名

javascript - 使用got时如何计算花费的时间?

c# - 从 Windows 文件时间转换为 DateTime

c - 删除红黑树中的节点时出现问题(C 代码)

c - 允许在函数定义的返回类型中定义结构有什么关系? (C)

c - C中是否需要typedef?