0

我的问题几乎在标题中。我有一个带有类型参数的函数调用time_t,我需要将一个变量初始化为今天的日期、月份和年份,并通过参数发送它。例如,

void WebCall(time_t TodaysDate)

包含斜杠TodaysDate的格式的填充变量在哪里。DD/MM/YYYY这可能吗?我无法将数据类型从time_ttoSYSTEMTIME或其他任何东西更改。这是用 C++ 编码的。有任何想法吗?

4

2 回答 2

1

time_t是“unix 时间”,是从 UTC 时间 1970 年 1 月 1 日 00:00 开始经过的秒数。正如 MSN 回答的那样,您可以使用 将其转换为日期gmtime对于最常见的目的,UTC 是 GMT 的同义词。您没有在问题中指定,但如果您需要本地日期使用localtime而不是gmtime. 这是一个可以为您执行此操作并返回 std::string 的函数:

#include <time.h>
#include <string>

std::string time_to_local_date( time_t utc )
{
    struct tm *now = localtime(&utc);
    char buffer[80];
    strftime(buffer, 80, "%d/%m/%Y", now);
    return std::string(buffer);
}
于 2012-09-21T15:37:21.863 回答
1

如果你的意思是time_t,你可以使用gmtime和格式化它strftime

time_t TodaysDate= ...;
struct tm * ptm= gmtime(&time);
char buffer[80];
strftime(buffer, 80, "%d/%m/%Y", ptm);
于 2012-09-20T23:59:42.763 回答