You've already forked lazarus-ccr
Fix "xsd_TryStrToDate" for date with timezone
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2186 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -323,14 +323,15 @@ begin
|
|||||||
mn := 0;
|
mn := 0;
|
||||||
ss := 0;
|
ss := 0;
|
||||||
ssss := 0;
|
ssss := 0;
|
||||||
if ( bufferPos >= bufferLen ) then begin
|
if (bufferPos >= bufferLen) {or (ADateKind = xdkDate)} then begin
|
||||||
ok := True;
|
ok := True;
|
||||||
end else begin
|
end else begin
|
||||||
ok := ( buffer[bufferPos] in [TIME_MARKER_CHAR,'-','+'] );
|
ok := ( buffer[bufferPos] in [TIME_MARKER_CHAR,'-','+'] );
|
||||||
if ok then begin
|
if ok then begin
|
||||||
if ( buffer[bufferPos] = TIME_MARKER_CHAR ) then begin
|
if ( buffer[bufferPos] = TIME_MARKER_CHAR ) then begin
|
||||||
Inc(bufferPos);
|
Inc(bufferPos);
|
||||||
ok := ( ADateKind = xdkDateTime ) and ReadInt(hh,TIME_SEP_CHAR);
|
ok := //( ADateKind = xdkDateTime ) and
|
||||||
|
ReadInt(hh,TIME_SEP_CHAR);
|
||||||
if ok then begin
|
if ok then begin
|
||||||
Inc(bufferPos);
|
Inc(bufferPos);
|
||||||
ok := ReadInt(mn,TIME_SEP_CHAR);
|
ok := ReadInt(mn,TIME_SEP_CHAR);
|
||||||
@@ -368,7 +369,12 @@ begin
|
|||||||
if ( ( y + m + d + hh + mn + ss + ssss ) = 0 ) then
|
if ( ( y + m + d + hh + mn + ss + ssss ) = 0 ) then
|
||||||
ADate.Date := 0
|
ADate.Date := 0
|
||||||
else
|
else
|
||||||
ADate.Date := EncodeDate(y,m,d) + EncodeTime(hh,mn,ss,ssss);
|
begin
|
||||||
|
if (ADateKind = xdkDate) then
|
||||||
|
ADate.Date := EncodeDate(y,m,d)
|
||||||
|
else
|
||||||
|
ADate.Date := EncodeDate(y,m,d) + EncodeTime(hh,mn,ss,ssss);
|
||||||
|
end;
|
||||||
ADate.HourOffset := tz_hh;
|
ADate.HourOffset := tz_hh;
|
||||||
ADate.MinuteOffset := tz_mn;
|
ADate.MinuteOffset := tz_mn;
|
||||||
Result := True;
|
Result := True;
|
||||||
|
Reference in New Issue
Block a user