Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перевод юниксовского времени в нормальное виндовое


f0rm ©   (2002-01-15 12:32:00) 

Как осуществить сабж, например 3c425e18 это 14/01/2002


Anatoly Podgoretsky   (2002-01-15 17:59:00) [1]

Тогда UnixTime := StrToInt("$" + edit1.text) и далее по приведенныи рекомендациям.


f0rm   (2002-01-15 17:23:00) [2]

А если нужно передать дату из edit1.text ?


troits   (2002-01-15 16:43:00) [3]

program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows;

function UnixToWindows(UnixTime: LongInt): TDateTime;
begin
result := EncodeDate(1970, 1, 1);
result := result + UnixTime / (60 * 60 * 24);
end;

var
ToDate: TDateTime;
wYear, wMonth, wDay: word;
begin
ToDate := UnixToWindows($3c425e18);
DecodeDate(ToDate, wYear, wMonth, wDay);
writeln("Year = ", wYear);
writeln("Month = ", wMonth);
writeln("Day = ", wDay);
readln;
end.


f0rm   (2002-01-15 16:34:00) [4]

Огромное спасибо! Но, когда я пихаю в функцию 3c425e18, то дельфи кричит об ошибке!


troits   (2002-01-15 15:50:00) [5]

В юниксе время - число секунд с 1.1.1970
Вот вариант:

function UnixToWindows(UnixTime: LongInt): TDateTime;
begin
result := EncodeDate(1970, 1, 1);
result := result + UnixTime / (60 * 60 * 24);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо