|
@@ -480,7 +480,7 @@ Var
|
|
|
|
|
|
// Various conversions
|
|
// Various conversions
|
|
|
|
|
|
-function DateTimeToJSDate(aDateTime : TDateTime) : TJSDate;
|
|
|
|
|
|
+function DateTimeToJSDate(aDateTime : TDateTime; asUTC : Boolean = False) : TJSDate;
|
|
function JSDateToDateTime(aDate : TJSDate) : TDateTime;
|
|
function JSDateToDateTime(aDate : TJSDate) : TDateTime;
|
|
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
|
|
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
|
|
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
|
|
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
|
|
@@ -553,6 +553,12 @@ function StrToDateTimeDef(const S: String; const Defvalue : TDateTime; aSettings
|
|
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime): string; overload;
|
|
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime): string; overload;
|
|
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime; const aSettings: TFormatSettings): string; overload;
|
|
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime; const aSettings: TFormatSettings): string; overload;
|
|
|
|
|
|
|
|
+// Local time
|
|
|
|
+
|
|
|
|
+function GetLocalTimeOffset: Integer; overload;
|
|
|
|
+function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean; out Offset: Integer): Boolean; overload;
|
|
|
|
+function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean = False): Integer; overload;
|
|
|
|
+
|
|
|
|
|
|
{ *****************************************************************************
|
|
{ *****************************************************************************
|
|
Currency support
|
|
Currency support
|
|
@@ -3228,7 +3234,7 @@ begin
|
|
Result:=0;
|
|
Result:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function DateTimeToJSDate(aDateTime: TDateTime): TJSDate;
|
|
|
|
|
|
+function DateTimeToJSDate(aDateTime: TDateTime; asUTC : Boolean = False): TJSDate;
|
|
|
|
|
|
Var
|
|
Var
|
|
Y,M,D,h,n,s,z : Word;
|
|
Y,M,D,h,n,s,z : Word;
|
|
@@ -3236,7 +3242,10 @@ Var
|
|
begin
|
|
begin
|
|
DecodeDate(Trunc(aDateTime),Y,M,D);
|
|
DecodeDate(Trunc(aDateTime),Y,M,D);
|
|
DecodeTime(Frac(aDateTime),H,N,S,Z);
|
|
DecodeTime(Frac(aDateTime),H,N,S,Z);
|
|
- Result:=TJSDate.New(Y,M-1,D,h,n,s,z);
|
|
|
|
|
|
+ if asUTC then
|
|
|
|
+ Result:=TJSDate.New(TJSDate.UTC(Y,M-1,D,h,n,s,z))
|
|
|
|
+ else
|
|
|
|
+ Result:=TJSDate.New(Y,M-1,D,h,n,s,z);
|
|
end;
|
|
end;
|
|
|
|
|
|
function JSDateToDateTime(aDate: TJSDate): TDateTime;
|
|
function JSDateToDateTime(aDate: TJSDate): TDateTime;
|
|
@@ -8805,6 +8814,25 @@ begin
|
|
System.Insert(New,FData,Index+1);
|
|
System.Insert(New,FData,Index+1);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+Function GetLocalTimeOffset : Integer;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ Result:=TJSDate.New.getTimezoneOffset;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean; out Offset: Integer): Boolean;
|
|
|
|
+begin
|
|
|
|
+ offset:=DateTimeToJSDate(DateTime).getTimezoneOffset;
|
|
|
|
+ Result:=True;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean): Integer;
|
|
|
|
+begin
|
|
|
|
+ if not GetLocalTimeOffset(DateTime, InputIsUTC, Result) then
|
|
|
|
+ Result:=GetLocalTimeOffset();
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+
|
|
initialization
|
|
initialization
|
|
ShortMonthNames:=DefaultShortMonthNames;
|
|
ShortMonthNames:=DefaultShortMonthNames;
|
|
LongMonthNames:=DefaultLongMonthNames;
|
|
LongMonthNames:=DefaultLongMonthNames;
|