C++現在の時刻を文字列に 【チュートリアル】


C++でプログラミングをしているときに、現在の時刻を文字列にしたい時がある。その一方法を簡単に紹介。

スポンサーリンク

時刻取得

次のような形でまずは時刻を取得することができる。__time64_tを使う理由としては、MSDNからの引用をすると__time32_tでは

UTC の 2038 年 1 月 19 日 03 時 14 分 07 秒以降の日付には使用できません

ということによる。(Visual C++ 2005では、time_tは__time64_tとのことなんでその心配はないとのこと)

なお、2003などでは、_sがついたCRT関数のセキュリティが強化されたバージョンが使えないので例えばこんな感じにする必要があるでしょう。

文字列化

C++といいつつ、今回はATLやWTL、MFCでおなじみのCStringを使って行う。(Windows Visual Studioを使っていない人には参考にならないが、、、sprintfでも何でも使ってもらえれば)ここで、注意としてtm::tm_yearは1900年からの差分値ということなので1900足す必要がある。また、tm::tm_monは1月からの差分値ということなので1足す必要がある。

以上で現在時刻(時間)を文字列化できる。

スポンサーリンク
カテゴリー: チュートリアル   パーマリンク

コメントは受け付けていません。