ミリ秒を知りたい
ファイルに名前つけるときに、そのときの時刻をファイル名にしたりします。
2010/7/30 12:34:56 なら、20100730123456.log とかね。
今まで CTime::GetCurrentTime() で取得した値を Format して使ってたのですが、一秒間に複数回ファイルを吐く必要があるときなんかに、ファイル名が重複して、一意性が保てなくなったりします。
じゃ、ミリ秒までとればいいべ、ってことで、ミリ秒のとりかた。
CTime さんじゃ無理みたい。SYSTEMTIME って構造体を使うらしい。
typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME;
使い方は例えばこんな感じ。
SYSTEMTIME st; GetSystemTime(&st); CString strNow; strNow.Format(_T("%04hu%02hu%02hu%02hu%02hu%02hu%03hu"), st.wYear, st.wMonth, st.wDay, st.wHour + 9, st.wMinute, st.wSecond, st.wMilliseconds);
マイクロ秒の取り方もあったりするのかしらね。