在项目中经常需要用到当前时间,以指定的格式输出,这里利用C++11 封装一个时间格式化函数。
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<chrono>
#include<codecvt>
#include<string>
#include<iomanip>
#include<algorithm>
#include<sstream>
using namespace std;
using namespace chrono;
//方式1:将时间戳转为时间字符串:"%Y-%m-%d %H-%M-%S"
string lToStringTime(time_t t1)
{
time_t t = t1;
char tmp[64];
struct tm * timinfo;
timinfo = localtime(&t);
strftime(tmp, sizeof(tmp), "%Y-%m-%d %H-%M-%S", timinfo);
return tmp;
}
//方式2: C++11改造方式1
string CurrentTime(string str)
{
stringstream ss;
chrono::system_clock::time_point a = chrono::system_clock::now(); //时间点可以做差
time_t t1 = chrono::system_clock::to_time_t(a); //time_t可以格式化
ss << std::put_time(localtime(&t1), str.c_str());
string str1 = ss.str();
return str1;
}
int main()
{
string s = "%Y-%m-%d %H-%M-%S";
cout << CurrentTime(s) << endl;
system("pause");
return 0;
}