[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]
{
Here's another Unit from me, This time it's a 
 Unix to DelphiTimeDate and ViceVersa Conversion Routines...
Andre Jakobs
  MicroBrain Technologies Inc.
    The Netherlands
unit U_DateTime;
{
 written by Andre Jakobs  from  MicroBrain Technologies Inc.
This Unit Converts UNIX timestamps and Delphi timestamps
Unix stores the TimeDate in a four byte long-integer(DoubleWord), As
the number of seconds since 1-januari-1970 0:0:0 .....
Delphi stores the TimeDate in TDateTime (a Float), where the integer
part of TDateTime type is the Number of days since 1-januari-0001 0:0:0
and the floating-point part the fractional Part of the day}
interface
const
    UnixStartDate : tdatetime = 719163.0;
function DelphiDateTimeToUnix(ConvDate:TdateTime):longint;
function UnixToDelphiDateTime(USec:longint):TDateTime;
implementation
(*-----------------------------------------------------------*)
(*         D e l p h i D a t e T i m e T o U N I X           *)
(*-----------------------------------------------------------*)
function DelphiDateTimeToUnix(ConvDate:TdateTime):longint;
{Converts Delphi TDateTime to Unix seconds,
   ConvDate = the Date and Time that you want to convert
   example:   UnixSeconds:=DelphiDateTimeToUnix(Now);}
begin
  Result:=round((ConvDate-UnixStartDate)*86400);
 end;
(*-----------------------------------------------------------*)
(*         U N I X T o D e l p h i D a t e T i m e           *)
(*-----------------------------------------------------------*)
function UnixToDelphiDateTime(USec:longint):TDateTime;
{Converts Unix seconds to Delphi TDateTime,
   USec = the Unix Date Time that you want to convert
   example:  DelphiTimeDate:=UnixToDelphiTimeDate(693596);}
begin
  Result:=(Usec/86400)+UnixStartDate;
 end;
end.
[Back to DELPHI SWAG index] [Back to Main SWAG index] [Original]