我的问题几乎在标题中。我有一个带有类型参数的函数调用time_t
,我需要将一个变量初始化为今天的日期、月份和年份,并通过参数发送它。例如,
void WebCall(time_t TodaysDate)
包含斜杠TodaysDate
的格式的填充变量在哪里。DD/MM/YYYY
这可能吗?我无法将数据类型从time_t
toSYSTEMTIME
或其他任何东西更改。这是用 C++ 编码的。有任何想法吗?
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);
}
如果你的意思是time_t
,你可以使用gmtime
和格式化它strftime
:
time_t TodaysDate= ...;
struct tm * ptm= gmtime(&time);
char buffer[80];
strftime(buffer, 80, "%d/%m/%Y", ptm);