我需要用c ++获取当前日期和时间。我可以使用chrono
来获取system time
,但是我还需要将其保存在json文件中作为字符串。而且我尝试过的计时时间给出以下格式:
auto time = std::chrono::system_clock::now();
输出:
Thu Oct 11 19:10:24 2012
但是我需要以下格式的日期时间格式:
2016-12-07T00:52:07
我还需要字符串形式的日期时间,以便将其保存在Json文件中。任何人都可以建议实现此目标的好方法。谢谢。
答案 0 :(得分:0)
最简单的方法是使用Howard Hinnant's free, open-source, header-only date.h:
#include "date/date.h"
#include <iostream>
#include <string>
int
main()
{
using namespace date;
using namespace std::chrono;
auto time = system_clock::now();
std::string s = format("%FT%T", floor<seconds>(time));
std::cout << s << '\n';
}
该库是新的C ++ 20 chrono扩展的原型。尽管在C ++ 20中,格式化的细节可能会略有变化,以使其与预期的C ++ 20 fmt
库保持一致。
答案 1 :(得分:0)
#include <iostream>
#include <chrono>
#include <ctime>
std::string getTimeStr(){
std::time_t now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
std::string s(30, '\0');
std::strftime(&s[0], s.size(), "%Y-%m-%d %H:%M:%S", std::localtime(&now));
return s;
}
int main(){
std::cout<<getTimeStr()<<std::endl;
return 0;
}