mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 23:49:22 +02:00
* introduce NowUTC() and GetUniversalTime()
git-svn-id: trunk@47306 -
This commit is contained in:
parent
7ad4694e4b
commit
934f2dc55d
@ -271,6 +271,17 @@ begin
|
|||||||
result := systemTimeToDateTime(SystemTime);
|
result := systemTimeToDateTime(SystemTime);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ NowUTC returns the current UTC Date and Time if available on the OS. If not, local date is returned }
|
||||||
|
|
||||||
|
function NowUTC: TDateTime;
|
||||||
|
var
|
||||||
|
SystemTime: TSystemTime;
|
||||||
|
begin
|
||||||
|
if not GetUniversalTime(SystemTime) then
|
||||||
|
GetLocalTime(SystemTime);
|
||||||
|
result := systemTimeToDateTime(SystemTime);
|
||||||
|
end;
|
||||||
|
|
||||||
{ IncMonth increments DateTime with NumberOfMonths months,
|
{ IncMonth increments DateTime with NumberOfMonths months,
|
||||||
NumberOfMonths can be less than zero }
|
NumberOfMonths can be less than zero }
|
||||||
|
|
||||||
@ -1529,6 +1540,11 @@ function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean
|
|||||||
begin
|
begin
|
||||||
Result:=False;
|
Result:=False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function GetUniversalTime(var SystemTime: TSystemTime): Boolean;
|
||||||
|
begin
|
||||||
|
Result:=False;
|
||||||
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean): Integer;
|
function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean): Integer;
|
||||||
|
@ -128,6 +128,7 @@ function DayOfWeek(DateTime: TDateTime): integer;
|
|||||||
function Date: TDateTime;
|
function Date: TDateTime;
|
||||||
function Time: TDateTime;
|
function Time: TDateTime;
|
||||||
function Now: TDateTime;
|
function Now: TDateTime;
|
||||||
|
function NowUTC: TDateTime;
|
||||||
function IncMonth(const DateTime: TDateTime; NumberOfMonths: integer = 1 ): TDateTime;
|
function IncMonth(const DateTime: TDateTime; NumberOfMonths: integer = 1 ): TDateTime;
|
||||||
procedure IncAMonth(var Year, Month, Day: Word; NumberOfMonths: Integer = 1);
|
procedure IncAMonth(var Year, Month, Day: Word; NumberOfMonths: Integer = 1);
|
||||||
function IsLeapYear(Year: Word): boolean;
|
function IsLeapYear(Year: Word): boolean;
|
||||||
@ -195,6 +196,7 @@ function StrToDateTimeDef(const S: AnsiString; const Defvalue : TDateTime; const
|
|||||||
function CurrentYear:Word;
|
function CurrentYear:Word;
|
||||||
{ FPC Extra }
|
{ FPC Extra }
|
||||||
Procedure GetLocalTime(var SystemTime: TSystemTime);
|
Procedure GetLocalTime(var SystemTime: TSystemTime);
|
||||||
|
function GetUniversalTime(var SystemTime: TSystemTime): Boolean;
|
||||||
|
|
||||||
procedure ReplaceTime(var dati:TDateTime; NewTime : TDateTime); inline;
|
procedure ReplaceTime(var dati:TDateTime; NewTime : TDateTime); inline;
|
||||||
procedure ReplaceDate(var DateTime: TDateTime; const NewDate: TDateTime); inline;
|
procedure ReplaceDate(var DateTime: TDateTime; const NewDate: TDateTime); inline;
|
||||||
|
@ -1176,6 +1176,17 @@ begin
|
|||||||
GetEpochTime:=fptime;
|
GetEpochTime:=fptime;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Procedure DoGetUniversalDateTime(var year, month, day, hour, min, sec, msec, usec : word);
|
||||||
|
|
||||||
|
var
|
||||||
|
tz:timeval;
|
||||||
|
begin
|
||||||
|
fpgettimeofday(@tz,nil);
|
||||||
|
EpochToUniversal(tz.tv_sec,year,month,day,hour,min,sec);
|
||||||
|
msec:=tz.tv_usec div 1000;
|
||||||
|
usec:=tz.tv_usec mod 1000;
|
||||||
|
end;
|
||||||
|
|
||||||
// Now, adjusted to local time.
|
// Now, adjusted to local time.
|
||||||
|
|
||||||
Procedure DoGetLocalDateTime(var year, month, day, hour, min, sec, msec, usec : word);
|
Procedure DoGetLocalDateTime(var year, month, day, hour, min, sec, msec, usec : word);
|
||||||
@ -1614,6 +1625,14 @@ begin
|
|||||||
Flush(Output);
|
Flush(Output);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function GetUniversalTime(var SystemTime: TSystemTime): Boolean;
|
||||||
|
var
|
||||||
|
usecs : Word;
|
||||||
|
begin
|
||||||
|
DoGetUniversalDateTime(SystemTime.Year, SystemTime.Month, SystemTime.Day,SystemTime.Hour, SystemTime.Minute, SystemTime.Second, SystemTime.MilliSecond, usecs);
|
||||||
|
Result:=True;
|
||||||
|
end;
|
||||||
|
|
||||||
function GetLocalTimeOffset: Integer;
|
function GetLocalTimeOffset: Integer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
@ -813,6 +813,12 @@ begin
|
|||||||
windows.Getlocaltime(SystemTime);
|
windows.Getlocaltime(SystemTime);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function GetUniversalTime(var SystemTime: TSystemTime): Boolean;
|
||||||
|
begin
|
||||||
|
windows.GetSystemTime(SystemTime);
|
||||||
|
Result:=True;
|
||||||
|
end;
|
||||||
|
|
||||||
function GetLocalTimeOffset: Integer;
|
function GetLocalTimeOffset: Integer;
|
||||||
|
|
||||||
var
|
var
|
||||||
|
@ -444,6 +444,12 @@ begin
|
|||||||
windows.Getlocaltime(SystemTime);
|
windows.Getlocaltime(SystemTime);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function GetUniversalTime(var SystemTime: TSystemTime): Boolean;
|
||||||
|
begin
|
||||||
|
windows.GetSystemTime(SystemTime);
|
||||||
|
Result:=True;
|
||||||
|
end;
|
||||||
|
|
||||||
function GetLocalTimeOffset: Integer;
|
function GetLocalTimeOffset: Integer;
|
||||||
var
|
var
|
||||||
TZInfo: TTimeZoneInformation;
|
TZInfo: TTimeZoneInformation;
|
||||||
|
Loading…
Reference in New Issue
Block a user