time_t now = time(0);
std::string h = std::string (ctime (&now));
std::cout << "\nh: " << h;
Current output that I am receiving is: Thu Sep 14 10:58:26 2017
I want the output as 2017-08-26-16-10-56
What can I do to that output?
time_t now = time(0);
std::string h = std::string (ctime (&now));
std::cout << "\nh: " << h;
Current output that I am receiving is: Thu Sep 14 10:58:26 2017
I want the output as 2017-08-26-16-10-56
What can I do to that output?
Use std::put_time
#include <iomanip>
time_t now = time(0);
std::string h = std::put_time(localtime(&now), "%F-%H-%M-%S");
std::cout << "\nh: " << h;
Output
h: 2017-09-14-05-54-02
Even better, use std::chrono
#include <iostream>
#include <iomanip>
#include <chrono>
using namespace std;
int main() {
auto now = chrono::system_clock::to_time_t(chrono::system_clock::now());
cout << put_time(localtime(&now), "%F-%H-%M-%S") << endl;
return 0;
}
Use strftime, like this:
Full code:
Output: