Главная страница
    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.05 c
15-1186816439
Дима79
2007-08-11 11:13
2007.09.09
Pocket PC


2-1187346621
preved
2007-08-17 14:30
2007.09.09
Винчестеры


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


2-1187235579
Андрей Л.
2007-08-16 07:39
2007.09.09
Эмуляция нажатие кнопки


15-1187190128
WhiteRaven
2007-08-15 19:02
2007.09.09
Подскажите какие нужны драйвера на видео карту





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский