gpt4 book ai didi

将字符串从 strftime 转换为 int/long

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:47 27 4
gpt4 key购买 nike

目标是一个函数,它提供一个带有实际时间的整数(或长整数)。因此,我将本地时间写入一个字符串(据我所知)并尝试使用 atoi/atol 将其转换为我的 int/long。但不知何故,我没有得到预期的结果。

我尝试过的事情:

  • 我从初始的 int 切换到 long。
  • 我改变了字符串的大小。如果我将它的大小调整为 7 而不是我需要的 15 个字节,它至少会转换我的字符串的日期部分。但我需要这一切。

我有以下代码:

long generate_time()
{
time_t time1;
time(&time1);

char time_str[15];
long act_time;

strftime(time_str, 15, "%Y%m%d%H%M%S", localtime(&time1));
printf("Actual time: %s\n", time_str);

act_time = atol(time_str);
printf("Transformed time: %d\n", act_time);

return act_time;
}

导致响应:

Actual time: 20170407091221 Transformed time: 1240669205

我希望这很容易解决,并提前感谢大家的帮助!

最佳答案

您不能使用 long 来存储此类数据:signed long 的最大值为:

-2^31+1 to +2^31-1

-2,147,483,648 to 2,147,483,647

您可以使用 unit64_t 来做您需要的事情

#include <stdint.h>

[...]

uint64_t act_time = strtoll(time_str, NULL, 10);

关于将字符串从 strftime 转换为 int/long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43272244/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com