📅 2015-Jan-13 ⬩ ✍️ Ashwin Nanjappa ⬩ 🏷️ cpp, date, time ⬩ 📚 Archive
In C++11 and later versions, date and time is supported in the standard library through the chrono
header file. To print out the date and time, you may still have to fall back on the std::time_t
and std::tm
structures and std::ctime
and std::localtime
functions from the ctime
header file and std::put_time
from iomanip
header file.
The code sample below shows these in action:
// Example output from this code:
// Tue Jan 13 12:09:53 2015 (from ctime)
// 20150113_12_09_53 (from strftime)
// 20150113_12_09_53 (from put_time)
#include <ctime>
#include <chrono>
#include <iomanip>
// Get current time
std::chrono::time_point<std::chrono::system_clock> time_now = std::chrono::system_clock::now();
// Print time using ctime
std::time_t time_now_t = std::chrono::system_clock::to_time_t(time_now);
std::cout << std::ctime(&time_now_t) << std::endl;
// Format time and print using strftime
std::tm now_tm = *std::localtime(&time_now_t);
char buf[512];
std::strftime(buf, 512, "%Y%m%d_%H_%M_%S", &now_tm);
std::cout << buf << std::endl;
// Format time and print using put_time
std::stringstream ss;
std::put_time(&now_tm, "%Y%m%d_%H_%M_%S");
ss << std::cout << ss.str() << std::endl;
Tried with: Visual C++ 2013