Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

SystemTime   Найти похожие ветки 

 
Александр_К   (2007-08-13 08:33) [0]

Уважаемые мастера.
Почему при переводе SystemTime в час получается не тот час, который стоит в системе, хотя остальные параметры определяются верно.

function GetTime:string;
var
   k1,k2,k3:string;
   SystemTime:TSystemTime;
begin
   Windows.GetSystemTime(SystemTime);
   if SystemTime.wMinute < 10 then
       k2:="0"+IntToStr(SystemTime.wMinute)
   else
       k2:=IntToStr(SystemTime.wMinute);
   if SystemTime.wHour < 10 then
       k1:="0"+IntToStr(SystemTime.wHour)
   else
       k1:=IntToStr(SystemTime.wHour);
   if SystemTime.wSecond < 10 then
       k3:="0"+IntToStr(SystemTime.wSecond)
   else
       k3:=IntToStr(SystemTime.wSecond);
   Result:="["+k1+":"+k2+":"+k3+"]";
end;


 
Anatoly Podgoretsky ©   (2007-08-13 08:38) [1]

> Александр_К  (13.08.2007 08:33:00)  [0]

Что значит не тот час, неправильный или не тот который ты ожидаешь.
Как устроено время в мире знаком?
Вообще то это глупый метод формирования текстовой строки из времени, может стоит ознакомиться с функциями времени в Дельфи?


 
Александр_К   (2007-08-13 08:42) [2]

Я не хочу подключать SysUtils, так как программа пишется на WinAPI.


 
sniknik ©   (2007-08-13 08:57) [3]

> Я не хочу подключать SysUtils, так как программа пишется на WinAPI.
сам себе злобный буратино...
ну ладно не хочеш подключать..., но посмотреть как сделано в нем, по нормальному, тоже не хочеш? и узнать как время в системе, виндах, устроено тоже? а без этого писать на WinAPI смысла мало.


 
Debug ©   (2007-08-13 09:22) [4]

GetSystemTime - время по Гринвичу.
Я делаю так:

var Time : SystemTime;
...
GetLocalTime(Time);
Result := Format("%.2d/%.2d/%.4d %.2d:%.2d:%.2d", [Time.wDay, Time.wMonth, Time.wYear, Time.wHour, Time.wMinute, Time.wSecond]);


 
DVM ©   (2007-08-13 10:42) [5]


> Я не хочу подключать SysUtils, так как программа пишется
> на WinAPI.

Тогда и действуй по правилам WinAPI. Функции для форматирования там тоже есть и причем с учетом настроек локали.

GetLocalTime()
GetTimeFormat()
GetLocaleInfo()


 
sniknik ©   (2007-08-13 10:42) [6]

> Я делаю так:
нафига? что вообще за дурацкая привычка работать не с датой, а с ее строковым представлением?


 
DVM ©   (2007-08-13 10:43) [7]


function GetTime: string;
var
 st: TSystemTime;
 Time, FormatString: PChar;
 TimeSize, FormatStringSize: integer;
begin
 Result := "";
 FormatStringSize := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, nil, 0);
 GetMem(FormatString, FormatStringSize * SizeOf(Char));
 GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, FormatString, FormatStringSize);
 GetLocalTime(st);
 TimeSize := GetTimeFormat(LOCALE_USER_DEFAULT, 0, nil, FormatString, nil, 0);
 GetMem(Time, TimeSize * SizeOf(Char));
 GetTimeFormat(LOCALE_USER_DEFAULT, 0, @st, FormatString, Time, TimeSize * SizeOf(Char));
 result := Time;
 FreeMem(Time);
 FreeMem(FormatString);
end;


 
DVM ©   (2007-08-13 10:44) [8]


> нафига?

Ну может ему время где вывести надо или в лог записать в текстовом виде.


 
Debug ©   (2007-08-13 17:56) [9]


> или в лог записать в
> текстовом виде.

абсолютно точно


 
patrushevd1982 ©   (2007-08-13 23:08) [10]

ЕПРСТ!.... Посмотри, как выглядит timetostr и сделай нечто подобное!!!


 
antonn ©   (2007-08-13 23:10) [11]

хм.. а formatdatetime() в каком модуле находится?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.071 c
15-1186513465
Cyrax
2007-08-07 23:04
2007.09.09
Проверка авторских прав на слово, составляющее доменное имя...


15-1187144554
Slider007
2007-08-15 06:22
2007.09.09
С днем рождения ! 15 августа 2007 среда


15-1187006902
Сатир
2007-08-13 16:08
2007.09.09
Вольные хлеба


15-1186756832
\/iKTOR
2007-08-10 18:40
2007.09.09
Улыбнитесь :)


15-1187106129
iZEN
2007-08-14 19:42
2007.09.09
Mdf2iso, есть ли аналоги iat.exe?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский