質問: ### 前提・実現したいこと VC++でログを吐き出すロガークラスのようなものを実装しています。 ### 発生している問題・エラーメッセージ ログに現在時刻を出したいのですが、どのように取得したら良いのでしょうか?
回答: スタンダードにCStringのTCHAR文字列だとすると、CTimeクラスのGetCurrentTimeが使いやすいでしょう。 (1) CTime型の変数Time(仮)を定義 (2) Time = CTime::GetCurrentTime();を使用。 (CTimeの関数ではありますが、Intellisenseでは出てきませんので、手打ちしてください。) (3) Time.Format()関数を使用。 ・戻り値がCStringの変換関数 ・引数として、変換後の書式を指定 ・今回はTCHAR文字列なので_T()指定。 ・引き出したい時刻情報(年月日時分秒などのオプションを指定) ・例:_T("%Y/%m/%d %H:%M:%S")なら、YYYY/MM/DD hh:mm:ss という日付+時刻表記になる。 (詳しいオプションはMSDNの項目を参照) (4) CStringの文字列を表示させる。 以上でOK。 これはあくまでCStringのTCHARというよくあるパターンに対応したもの。どういった文字列型なのかによって変わってきます。