Доброго времени суток! При использовании Win32 API функции GetSystemTime() заметил некоторую странность - возвращаемое время на 4 часа "опаздывает", т.е. если текущее время 12:00, то будет возвращено 8:00.
Code
function GetDateTime:string; {день-месяц-год-часы-минуты-секунды} var DT:SystemTime; day,month,year,hour,minute,second:string; begin GetSystemTime(DT); Str(dt.wday,day); Str(dt.wmonth, month); Str(dt.wyear, year); Str(dt.whour+4, hour);{костыль! Сломать ногу!**********Пока вроде успешно работает... Почему?**********************} Str(dt.wminute, minute); Str(dt.wsecond, second); GetDateTime:=day+'.'+month+'.'+year+' '+hour+':'+minute+':'+second; end;
C такой поправкой (+4 часа) код вполне себе работает. В связи с чем возник вопрос: я что-то делаю не так, или это ошибка компилятора или ОС? Будь подобен лезвию бритвы: ярким, блестящим, отточенным, но холодным и не показывающим своего истинного цвета.
Сообщение отредактировал BASS - Воскресенье, 17 Июня 2012, 08:57
Demeron, спасибо! Всё отлично работает. А я даже и не подумал о нулевом меридиане, хотя в документации есть отсылка к UTC. Будь подобен лезвию бритвы: ярким, блестящим, отточенным, но холодным и не показывающим своего истинного цвета.