我有一个旧的申请.它具有存储在其数据中的本地化格式的日期.此字符串仅用于显示,因此可以将其置于本地化表单中.现在我们需要将它重用为TDateTime.这似乎很简单:因为我们从DateToStr获取了字符串,我们将使用StrToDate将其转换回来.所以我写了一个小的控制台程序来验证它:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
var
S:String;
D: TDateTime;
begin
S := DateToStr(Now);
Writeln(S);
D := StrToDate(S); //! throws an EConvertError
Readln;
end.
Run Code Online (Sandbox Code Playgroud)
它抛出一个EConvertError:Project Project1.exe引发异常类EConvertError,消息为''28.9. 2017'不是有效日期'.这是不正确的,异常提到的日期是有效的!它刚刚通过DateToStr生成.这对我来说完全没有意义.这可能是Windows 10中的错误吗?