[英]C++ how can i get the name in class to make it as a ranking system based on the time I input
[英]c++ 11 How can I acquire the system time?
#include <chrono>
#include <string>
#include <iostream>
#include <ctime>
using namespace std;
int main() {
chrono::time_point<chrono::system_clock> end;
end = chrono::system_clock::now();
time_t end_time = chrono::system_clock::to_time_t(end);
cout << ctime(&end_time) << endl;
system("PAUSE");
return 0;
}
在C ++ 11中,如何获取系统时间? 运行此代码时,出现错误
代码C4996'ctime':此函数或变量可能不安全。
另外,如果有人可以向我解释如何进行调整,以便以类似于month/day/year Hour:Minute
格式设置时间,我将不胜感激。
在C ++ 20中,这变得更加容易。 在C ++ 11中,您可以使用Howard Hinnant的日期/时间库立即开始使用C ++ 20语法:
#include "date/date.h"
#include <chrono>
#include <iostream>
int
main()
{
using namespace std;
cout << date::format("%m/%d/%Y %H:%M\n", chrono::system_clock::now());
}
这将以所需的格式输出系统时间。 您的系统保留UTC时间,而不是本地时间。 这只是为我输出:
10/16/2018 13:32
如果您不需要本地时间/时区支持,则这是一个单独的标头,仅标头的库。 只要加上date/date.h
,您就可以顺利进行了。 如果需要时区支持,则在同一链接上还有一个额外的时区库,但它不是仅标头。 它有一个必须编译的源tz.cpp
。 可以这样使用:
#include "date/tz.h"
#include <chrono>
#include <iostream>
int
main()
{
using namespace std;
cout << date::format("%m/%d/%Y %H:%M\n",
date::make_zoned(date::current_zone(), chrono::system_clock::now()));
}
对我来说,将输出更改为:
10/16/2018 09:32
通过删除#include "date/..."
,将date::format
更改为date::make_zoned
chrono::format
,并将date::make_zoned
更改为chrono::zoned_time
date::make_zoned
,此代码(均为示例)将移植到C ++ 20。 如果您使用的是C ++ 17,则可以将date::make_zoned
更改为date::zoned_time
(需要C ++ 17模板推导指南)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.