[fpc-pascal] Getting UTC time etc.
Mark Morgan Lloyd
markMLl.fpc-pascal at telemetry.co.uk
Sat Jul 28 22:59:18 CEST 2012
Mark Morgan Lloyd wrote:
> I know that this was discussed a couple of months ago, but I had
> difficulty working out what the consensus was.
>
> i) Is there an FPC function which will get the raw time from the RTC,
> which on unix systems will usually be UTC (specifically, without a DST
> correction)?
Discussion was in March. How time flies. Reinier et al. suggested
PascalTZ, but in the end I went for a simple function since I'm trying
to avoid installing anything special and timezone info will be available
from the backend database.
(* This from FPC-Pascal mailing list, 13/02/07. Thanks, Marco.
*)
//
function utc_now : TDateTime;
var
timeval: TTimeVal;
timezone: PTimeZone;
a: Double;
begin
TimeZone := nil;
fpGetTimeOfDay (@TimeVal, TimeZone);
// Convert to milliseconds
a := (TimeVal.tv_sec * 1000.0) + (TimeVal.tv_usec / 1000.0);
Result := (a / MSecsPerDay) + UnixDateDelta;
end;
> ii) Are there functions to get "Unix seconds", "Borland seconds" and
> so on? Preferably without DST correction, or with the correction being
> extractable?
DateTimeToUnix() from DateUtils. Anything else I can do without.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-pascal
mailing list