[fpc-pascal] getting system time in linux

Rainer Stratmann RainerStratmann at t-online.de
Fri Apr 10 15:56:57 CEST 2009


Am Freitag, 10. April 2009 16:47 schrieb Jan De Bleser:

You can try this. Not all uses are needed, you have to find out.
Rainer

uses
 crt,
 {$ifdef linux}
 baseunix,
 unix,
 termio, // serial
 linux,
 sysutils,
 dateutils,
 unixutil;
 {$else}
 windows;
 {$endif}

procedure mylo_os_gettime( var hour , minute , second , sec1000 : word );
var
{$ifdef linux}  // LINUX
 datetime : tdatetime;
{$else}
 st : systemtime;
{$endif}
begin
 {$ifdef linux} // LINUX
 datetime := time;
 hour     := hourof( datetime );
 minute   := minuteof( datetime );
 second   := secondof( datetime );
 sec1000  := millisecondof( datetime );
 {$else}        // WINDOWS
 getlocaltime( st );
 hour    := st.whour;
 minute  := st.wminute;
 second  := st.wsecond;
 sec1000 := st.wmilliseconds;
 {$endif}
end;

procedure mylo_os_getdate( var year , month , day : word );
var
{$ifdef linux}
 datetime : tdatetime;
{$else}
 st : systemtime;
{$endif}
begin
 {$ifdef linux}
 datetime := date;
 year     := yearof( datetime );
 month    := monthof( datetime );
 day      := dayof( datetime );
 {$else}
 getlocaltime( st );
 year   := st.wyear;
 month  := st.wmonth;
 day    := st.wday;
 {$endif}
end;



> Hi,
>
> How is it possible to get the system time in linux?
> It used to be possible by using 'getsystemtime' of the unit oldlinux,
> but this unit is no longer available on my compiler...
>
> The thing I want to use it for is: I get a packet form libpcap, with the
> time of receival in system time.
> I want to convert this time to system time by doing something like:
> rcvTime := packet.rcvTime + (now - getSystemTime)
>
> Kind regards,
>
> Jan
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal



More information about the fpc-pascal mailing list