2017-05-07 15 views
1

日付を出力するコードがあります。これをchar配列に変換したいと思います。日付構造体を文字配列に変換する方法

どうすれば適切に行うことができますか?

#include <iomanip> 
#include <chrono> 

using namespace std; 
using chrono::system_clock; 


time_t tt = system_clock::to_time_t(system_clock::now()); 
struct tm * ptm = localtime(&tt); 

答えて

2

このタスクにはsprintf関数を使用します。

char buff[100]; 
    if(ptm->tm_mon < 10){ 
      if(ptm->tm_mday < 10){ 
        sprintf(buff,"%u-0%u-0%u",(unsigned)ptm->tm_year,(unsigned)ptm->tm_mon,(unsigned)ptm->tm_mday); 
      }else{ 
        sprintf(buff,"%u-0%u%u",(unsigned)ptm->tm_year,(unsigned)ptm->tm_mon,(unsigned)ptm->tm_mday); 
      } 
    }else{ 
      if(ptm->tm_mday < 10){ 
        sprintf(buff,"%u-%u-0%u",(unsigned)ptm->tm_year,(unsigned)ptm->tm_mon,(unsigned)ptm->tm_mday); 
      }else{ 
        sprintf(buff,"%u-%u-%u",(unsigned)ptm->tm_year,(unsigned)ptm->tm_mon,(unsigned)ptm->tm_mday); 
      } 
    } 

残りは希望する形式によって異なります。

+0

ありがとうございました。日付にゼロを追加すると、07.05.2017が出力されるので、出力は5.7.2017になります。 – Viktor

+0

@Viktor私の回答を更新しました – RoiHatam

関連する問題