浏览代码

* Fixed TryStrToDateTime so it returns True only if both date and time are parsed successfully, resolves #17541.

git-svn-id: trunk@16099 -
sergei 15 年之前
父节点
当前提交
6a9a991dca
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      rtl/objpas/sysutils/dati.inc

+ 2 - 1
rtl/objpas/sysutils/dati.inc

@@ -1294,7 +1294,7 @@ var
   I: integer;
   I: integer;
   dtdate, dttime :TDateTime;
   dtdate, dttime :TDateTime;
 begin
 begin
-  result:=true;
+  result:=false;
   I:=Pos(FormatSettings.TimeSeparator,S);
   I:=Pos(FormatSettings.TimeSeparator,S);
   If (I>0) then
   If (I>0) then
     begin
     begin
@@ -1307,6 +1307,7 @@ begin
           if not TryStrToTime(Copy(S,i+1, Length(S)-i),dttime,Formatsettings) then
           if not TryStrToTime(Copy(S,i+1, Length(S)-i),dttime,Formatsettings) then
             exit;
             exit;
           Value:=ComposeDateTime(dtdate,dttime);
           Value:=ComposeDateTime(dtdate,dttime);
+          result:=true;
         end
         end
       else
       else
          result:=TryStrToTime(s,Value,Formatsettings);
          result:=TryStrToTime(s,Value,Formatsettings);