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;
|
||||
ss := 0;
|
||||
ssss := 0;
|
||||
if ( bufferPos >= bufferLen ) then begin
|
||||
if (bufferPos >= bufferLen) {or (ADateKind = xdkDate)} then begin
|
||||
ok := True;
|
||||
end else begin
|
||||
ok := ( buffer[bufferPos] in [TIME_MARKER_CHAR,'-','+'] );
|
||||
if ok then begin
|
||||
if ( buffer[bufferPos] = TIME_MARKER_CHAR ) then begin
|
||||
Inc(bufferPos);
|
||||
ok := ( ADateKind = xdkDateTime ) and ReadInt(hh,TIME_SEP_CHAR);
|
||||
ok := //( ADateKind = xdkDateTime ) and
|
||||
ReadInt(hh,TIME_SEP_CHAR);
|
||||
if ok then begin
|
||||
Inc(bufferPos);
|
||||
ok := ReadInt(mn,TIME_SEP_CHAR);
|
||||
@ -368,7 +369,12 @@ begin
|
||||
if ( ( y + m + d + hh + mn + ss + ssss ) = 0 ) then
|
||||
ADate.Date := 0
|
||||
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.MinuteOffset := tz_mn;
|
||||
Result := True;
|
||||
|
Reference in New Issue
Block a user