time_t t = time(0);
struct tm *now = localtime(&t);
使用上面的代码,我可以简单地得到这样的日期:
int yearNow = (now.tm_year + 1900), monthNow = (now.tm_mon + 1), dayNow = now.tm_mday
但是Visual Studio 2015在localtime
上给我错误,请我改为使用localtime_s
。以下是使用localtime_s
的代码:
time_t rawtime;
struct tm now;
localtime_s(&now, &rawtime);
但问题是,如何在int
中获取当前的实际年,月,日?
我使用以下代码打印变量:cout << now.tm_year << " " << now.tm_mon << " " << now.tm_mday;
但输出为-1 -1 -1
答案 0 :(得分:0)
time_t
变量应使用time(&rawtime)
初始化,以便localtime_s
可以使用它来正确填写struct
。与第一行time_t t = time(0)
非常相似,需要使用time
函数初始化变量,并将其传递给null参数(0)或指向变量的指针(&amp; rawtime)。
不幸的是,在内存中分配time_t
var并不会自动计算自Epoch以来的时间。 Here's一个解决同一问题的问题,但它有一个您正在寻找的代码示例。
答案 1 :(得分:-1)
我从另一个问题How do you get the current time of day?
中找到了什么下面的代码会为您提供日期的字符串。你应该能够拆分它并将其转换为int。
DateTime.Now.TimeOfDay将它作为TimeSpan(从午夜开始)发送给您。 DateTime.Now.ToString(“h:mm:ss tt”)将它作为字符串提供给您。 日期时间参考:https://msdn.microsoft.com/en-us/library/system.datetime
非常感谢Mark Brackett的回答