- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
static void tm_to_systemtime(const tm* pTime, LPSYSTEMTIME pSysTime )
{
time_t timeT = mktime((tm*)pTime);
FILETIME fTime = {0},lTime = {0};
LONGLONG ll = Int32x32To64(timeT, 10000000) + 116444736000000000;
fTime.dwLowDateTime = (DWORD) ll;
fTime.dwHighDateTime = ll >>32;
FileTimeToLocalFileTime(&fTime,&lTime);
FileTimeToSystemTime(&lTime,pSysTime);
}
static std::string GetDateTimeString(const tm& activ)
{
SYSTEMTIME sysTime = {0};
tm_to_systemtime(&activ,&sysTime);
char str[256];
//format to <YYYYMMDDHHMMSS>
sprintf_s(str,sizeof(str),"%04d%02d%02d%02d%02d%02d",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);
return std::string(str);
}
далеко не самый скучный способ отформатировать ::tm в виде YYYYMMDDHHmmss
man strftime
10+ лет это дерьмо уже не видел, но все равно еще из кошмаров названия функций всплыли.
как-то не понятно. если откуда то взялась инстанция `struct tm`, то где-то же должны быть ей родственные `gmtime`, `localtime` & `strftime`.
переливание одного сплит представления даты в другое выглядит весьма глупо. и разницы между tm и SYSTEMTIME я вижу только в том что DST и GMT-offset в последнем отсутствуют (ы?). которые здесь вроде и не нужны.
cpp date: рейтинг +5
все честно!
это ещё кто такие?