gpt4 book ai didi

C:字符串到毫秒时间戳

转载 作者:IT王子 更新时间:2023-10-29 06:14:19 37 4
gpt4 key购买 nike

我想在函数中以字符串格式返回时间戳中的 time_t 值,但我不明白。我需要帮助。

我读取了一个Redis数据库的字符串KEY,它是一个时间戳值,形式为,例如,"1456242904.226683"

我的代码是:

time_t get_ts(redisContext *ctx)
{
redisReply *reply;
reply = redisCommand(ctx, "GET %s", "KEY");
if(reply == NULL){
return -1;
}

char error[255];
sprintf(error, "%s", "get_ts 2:",reply->str);
send_log(error);

freeReplyObject(reply);

return reply->str;
}

reply->str 是一个字符串值,但我需要返回一个 time_t 值。

我该怎么做?

谢谢

最佳答案

我假设 1456242904.226683 是自 1970 年 1 月 1 日 00:00 以来过去的秒数。这大约是 46 年。1456242904.226683 是一个浮点值,time_t 是一个整数数据类型。您无法将 1456242904.226683 准确转换为 time_t,但可以转换为 1456242904。首先使用atof将字符串转换为浮点值,然后将浮点值转换为 time_t:

#include <stdlib.h>     // atof

time_t get_ts(redisContext *ctx)
{
redisReply *reply;
reply = redisCommand(ctx, "GET %s", "KEY");
if(reply == NULL){
return -1;
}

char error[255];
sprintf(error, "%s", "get_ts 2:",reply->str);
send_log(error);

time_t t = (time_t)atof(reply->str);
// ^^^^^^ ^^^^

freeReplyObject(reply);

return t;
}

关于C:字符串到毫秒时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582490/

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