У меня есть "читаемые человеком" переменные hours
, minutes
, seconds
, day
, month
, year
, которые содержат значения, соответствующие их именам (скажем, у меня есть структура SYSTEMTIME
от <windows.h>
).
Единственный способ создать chrono::time_point
:
SYSTEMTIME sysTime = ...; // Came from some source (file, network, etc. )
tm t;
t.tm_sec = sysTime.wSecond;
t.tm_min = sysTime.wMinute;
t.tm_hour = sysTime.wHour;
t.tm_mday = sysTime.wDay;
t.tm_mon = sysTime.wMonth - 1;
t.tm_year = sysTime.wYear - 1900;
t.tm_isdst = 0;
std::chrono::system_clock::time_point dateTime =
std::chrono::system_clock::from_time_t( mktime( & t ) );
Во-первых, я потерял миллисекунды от SYSTEMTIME
.
Во-вторых, (ммм...) мне не нравится такое преобразование))
Не могли бы вы дать более элегантный способ решить эту проблему?