2017-09-14 8 views
2
time_t now = time(0); 
std::string h = std::string (ctime (&now)); 

std::cout << "\nh: " << h; 

電流出力は次のようになります。Thu Sep 14 10:58:26 2017time_tの日付と時刻の形式を変更するにはどうすればよいですか?私は受け付けており

2017-08-26-16-10-56

が、私はその出力に何ができるように私は出力をしたいですか?このような使用strftime

+1

関連を使用質問:https://stackoverflow.c om/questions/3673226/print-time-in-format-2009-08-10-181754-811 – rsp

答えて

1

、:

strftime (buffer, 80,"%Y-%m-%d-%H-%M-%S",timeinfo); 

全コード:

#include <cstdio> 
#include <ctime> 

int main() 
{ 
    time_t rawtime; 
    struct tm * timeinfo; 
    char buffer [80]; 

    time (&rawtime); 
    timeinfo = localtime (&rawtime); 

    strftime (buffer, 80,"%Y-%m-%d-%H-%M-%S",timeinfo); 
    puts (buffer); 

    return 0; 
} 

出力:

2017-09-14-14-41-19

2

使用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; 

出力

時間:2017-09-14-05-54-02さらに良い

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; 
} 
関連する問題