// // returns server time in the form "[m/d/y h:m:s]" // const char* plNetClientMgr::GetServerLogTimeAsString(plString& timestamp) const { const plUnifiedTime st=GetServerTime(); timestamp = plFormat("{{{_02}/{_02} {_02}:{_02}:{_02}}", st.GetMonth(), st.GetDay(), st.GetHour(), st.GetMinute(), st.GetSecond()); return timestamp.c_str(); }
bool plFileUtils::SetModifyTime( const char * filename, const plUnifiedTime & timestamp ) { #ifdef HS_BUILD_FOR_WIN32 HANDLE hFile = CreateFile(filename, GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,nil); if (hFile==INVALID_HANDLE_VALUE) return false; SYSTEMTIME systime; systime.wDay = timestamp.GetDay(); systime.wDayOfWeek = timestamp.GetDayOfWeek(); systime.wHour = timestamp.GetHour(); systime.wMilliseconds = 0; systime.wMinute = timestamp.GetMinute(); systime.wMonth = timestamp.GetMonth(); systime.wSecond = timestamp.GetSecond(); systime.wYear = timestamp.GetYear(); FILETIME localFileTime, filetime; SystemTimeToFileTime(&systime,&localFileTime); LocalFileTimeToFileTime(&localFileTime,&filetime); SetFileTime(hFile,nil,nil,&filetime); CloseHandle(hFile); return true; #elif HS_BUILD_FOR_UNIX struct stat sbuf; int result = stat( filename, &sbuf ); if( result ) return false; struct utimbuf utb; utb.actime = sbuf.st_atime; utb.modtime = timestamp.GetSecs(); result = utime( filename, &utb ); if( result ) return false; return true; #endif }