/** * Converts a given time to a relative display string (relative to current time) * Given time must be in local timezone */ CString CLoglistUtils::ToRelativeTimeString(CTime time) { // convert to COleDateTime SYSTEMTIME sysTime; time.GetAsSystemTime(sysTime); COleDateTime oleTime(sysTime); return ToRelativeTimeString(oleTime, COleDateTime::GetCurrentTime()); }
/** * Converts a given time to a relative display string (relative to current time) * Given time must be in local timezone */ CString CAppUtils::ToRelativeTimeString(CTime time) { CString answer; // convert to COleDateTime SYSTEMTIME sysTime; time.GetAsSystemTime( sysTime ); COleDateTime oleTime( sysTime ); answer = ToRelativeTimeString(oleTime, COleDateTime::GetCurrentTime()); return answer; }
/** * FUNCTION : FormatDateAndTime * DESCRIPTION : Generates a displayable string from a CTime object in * system short or long format or as a relative value * cTime - the time * option - DATE_SHORTDATE or DATE_LONGDATE * bIncluedeTime - whether to show time as well as date * bRelative - if true then relative time is shown if reasonable * If HKCU\Software\TortoiseGit\UseSystemLocaleForDates is 0 then use fixed format * rather than locale * RETURN : CString containing date/time */ CString CAppUtils::FormatDateAndTime( const CTime& cTime, DWORD option, bool bIncludeTime /*=true*/, bool bRelative /*=false*/) { CString datetime; if ( bRelative ) { datetime = ToRelativeTimeString( cTime ); } else { // should we use the locale settings for formatting the date/time? if (CRegDWORD(_T("Software\\TortoiseGit\\UseSystemLocaleForDates"), TRUE)) { // yes SYSTEMTIME sysTime; cTime.GetAsSystemTime( sysTime ); TCHAR buf[100]; GetDateFormat(LOCALE_USER_DEFAULT, option, &sysTime, NULL, buf, _countof(buf) - 1); datetime = buf; if ( bIncludeTime ) { datetime += _T(" "); GetTimeFormat(LOCALE_USER_DEFAULT, 0, &sysTime, NULL, buf, _countof(buf) - 1); datetime += buf; } } else { // no, so fixed format if ( bIncludeTime ) { datetime = cTime.Format(_T("%Y-%m-%d %H:%M:%S")); } else { datetime = cTime.Format(_T("%Y-%m-%d")); } } } return datetime; }