c++中的数据和时间格式

Data and Time format in c++

本文关键字:时间 格式 数据 c++      更新时间:2023-10-16

我需要将日期时间转换为17字节格式。

格式为

MMDDYYYY HH:MM:SS

ASCII。

示例日期和时间:01212009 09:38:57

十六进制格式

0x30    0x31    0x32    0x31    0x32    0x30    0x30    0x39
0x20    0x30    0x39    0x3A    0x33    0x38    0x3A    0x35    0x37

问题是如何将这个01212009 09:38:57转换为十六进制格式。我需要通过网络发送这个日期时间

您发布的十六进制值正是您发布的字符串01212009 09:38:57的ascii值。
在您的示例中,实际上没有将该字符串转换为十六进制值。

所以如果你有这个:

const char* dateStr = "01212009 09:38:57";

然后像这样打印出来:

for (int i=0; i < strlen(dateStr); ++i)
{
    printf("%xt", dateStr[i]);
}

(或者类似的东西)
你会得到这些值。
你只是将它们显示为十六进制值,而不是字符表示。

我实际上不知道你在哪个平台上工作。我认为itoa函数应该作为标准c++库的一部分存在于所有平台上。使用它将字符值转换为十六进制。只需将radix参数设置为16

你把形式和表示混淆了。

虽然我们通常用十六进制格式表示"原始字节",但这并不意味着它们以这种方式"存在"。

无论您将数据显示为ASCII字符串"01212009 09:38:57"还是作为分解的单个字节值的列表,仍然是相同的数据,并且仍然是17字节