[fpc-pascal] Local Time
Carsten Bager
carsten at beas.dk
Thu Feb 21 09:15:58 CET 2008
My problem is that I get UTC time with the 220 compiler on the Arm
platform, when using gettime, now ---.
If i compile my program "lt" (local time) with the 220 compiler on Linux 386
it works as I expects.
If I compile it to an Arm Linux it fails but if I use the 204 compiler it works.
I have to use the 220 compiler on my project. Is there a way around this
problem.
Regards
Carsten
Output from 220 compiler on 386 Linux
LTC:21/02-2008 8:59:20:416
UTC:21/02-2008 7:59:20:00
Output from 220 compiler on Arm Linux
Thu Feb 21 08:02:35 UTC 2008
LTC:21/02-2008 8:02:25:656
UTC:21/02-2008 8:03:45:00
Output from 204 compiler on Arm Linux
LTC:21/02-2008 8:50:48:421
UTC:21/02-2008 7:50:48:00
--------------------------------------------------------------------------------------------
{Datotid test program}
{$mode objfpc}
{$LONGSTRINGS OFF}
{$IFDEF DEBUG} {Compileren kan leverer denne definition}
{$RANGECHECKS ON}
{ $OVERFLOWCHECKS ON} {Der er problemer med denne paa
ARM 9}
{$S+ STACK CHECKING ON}
{$SMARTLINK ON}
{$TYPEINFO ON}
{$DEFINE DEBUGCALNANOX}
{$ENDIF}
Program lt;
Uses unix,
Swrite,
baseunix,
sysutils; {System}
Var
SystemTime:TSystemTime;
DateTime:TDateTime;
Procedure GetUtcTime(var SystemTime: TSystemTime);
Var
DateTime:TDateTime;
Begin
DateTime:=(fptime / 86400.0) + 25569;
DateTimeToSystemTime(DateTime,SystemTime);
End;
Function SystemTimeToStr(dt:TSystemTime):shortstring;
Begin
SystemTimeToStr:=intToStrR(dt.Day,2)+'/'+
intToStr0(dt.Month,2)+'-'+
intToStr0(dt.Year,4)+
intToStrR(dt.Hour,3)+':'+
intToStr0(dt.Minute,2)+':'+
intToStr0(dt.Second,2)+':'+
intToStr0(dt.MilliSecond,2);
End;
Begin
GetLocalTime(SystemTime);
WriteLn('LTC:',SystemTimeToStr(SystemTime));
GetUtcTime(SystemTime);
WriteLn('UTC:',SystemTimeToStr(SystemTime));
End.
Med venlig hilsen
Carsten Bager
BEAS A/S
Brørupvænget 10
DK-7650 Bøvlingbjerg
Tlf. : +45 9788 5222 Fax : +45 9788 5434
www.beas.dk
More information about the fpc-pascal
mailing list