次のように、「拡張モード」で日付を出力する必要があります。
Thursday 02 August 2013
COleDateTime を使用しても問題はありませんが、これをローカル言語 (私の場合はイタリア語) で印刷する必要があります。ベース SDK コマンドを使用する古いコンパイラで、次のコードを見つけました。
char lpDateStr[128], lpTimeStr[128];
SYSTEMTIME today;
WString str;
FileTimeToSystemTime( &IdUnicoK1, &today );
GetDateFormat( LOCALE_USER_DEFAULT, DATE_LONGDATE, &today, NULL, lpDateStr, sizeof(lpDateStr) );
GetTimeFormat( LOCALE_USER_DEFAULT, TIME_FORCE24HOURFORMAT, &today, NULL, lpTimeStr, sizeof(lpTimeStr) );
str.Sprintf( "%s, %s", lpDateStr, lpTimeStr );
MSDNによると、MFCでは次のようになります。
SYSTEMTIME stBuf;
CString strD;
CString strT;
CString strData;
FileTimeToSystemTime( &m_pK1->m_ftMyData, &stBuf );
strD = _T("dddd dd MMMM yyyy");
GetDateFormat( LOCALE_USER_DEFAULT, DATE_LONGDATE, &stBuf, NULL, strD.GetBuffer(), strD.GetLength() );
strT = _T("HH':'mm':'ss");
GetTimeFormat( LOCALE_USER_DEFAULT, TIME_FORCE24HOURFORMAT, &stBuf, NULL, strT.GetBuffer(), strT.GetLength() );
strData.Format( _T("%s, %s"), strD, strT );
しかし、これにより次の結果が得られました。
dddd dd MMMM yyyy, HH':'mm':'ss
どこが間違っていますか?