Bit of a c++ newbie so here we go;
I have a method that is parsing a date/time, however that date/time is passed to me always with 00:00:00 as the hh:mm:ss. As such i wa
Try this function:
CTime Time2UTC(CTime original)
{
CString Formatted = original.FormatGmt(L"%Y%m%d%H%M%S");
int Year, Month, Day, Hour, Minute;
if (Formatted != L"" && Formatted.GetLength() >= 12)
{
Year = _wtol(Formatted.Left(4));
Month = _wtol(Formatted.Mid(4, 2));
Day = _wtol(Formatted.Mid(6,2));
Hour = _wtol(Formatted.Mid(8, 2));
Minute = _wtol(Formatted.Mid(10, 2));
CTime result(Year, Month, Day, Hour, Minute, 0);
return result;
}
else
return (CTime)NULL;
}
The reson is the mktime()
method used in the first function uses local time, but gmtime()
uses UTC time.
See http://www.cplusplus.com/reference/clibrary/ctime/mktime/ and http://www.cplusplus.com/reference/clibrary/ctime/gmtime/ for further explanation.