Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi XE5中的DateTimeToString不';不行?_Delphi_Delphi Xe5 - Fatal编程技术网

Delphi XE5中的DateTimeToString不';不行?

Delphi XE5中的DateTimeToString不';不行?,delphi,delphi-xe5,Delphi,Delphi Xe5,我有一小段代码: DateTimeToString(DiffString, 't.zzz', TDT); ShowMessage('TDT: ' + DateTimeToStr(TDT)); ShowMessage('DiffString: ' + DiffString); 第一条ShowMessage的哪个结果给出了随机的nice DateTime TDT值。。。 第二个,其中DiffString为00:00.000 有人可以在其他IDE中检查它吗?事实上,DateTim

我有一小段代码:

  DateTimeToString(DiffString, 't.zzz', TDT);
    ShowMessage('TDT: ' + DateTimeToStr(TDT));
    ShowMessage('DiffString: ' + DiffString);
第一条ShowMessage的哪个结果给出了随机的nice DateTime TDT值。。。 第二个,其中DiffString为00:00.000


有人可以在其他IDE中检查它吗?

事实上,
DateTimeToString
工作正常,性能完全符合设计要求。它正在做你要求它做的事情

以下是您应该提供的SSCCE:

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  DiffString: string;
  TDT: TDateTime;

begin
  TDT := Date;
  DateTimeToString(DiffString, 't.zzz', TDT);
  Writeln('TDT: ' + DateTimeToStr(TDT));
  Writeln('DiffString: ' + DiffString);
end.
输出:

TDT: 04/02/2014 DiffString: 00:00.000 输出

TDT: 04/02/2014 11:16:43 DiffString: 11:16.942 TDT:04/02/2014 11:16:43 DiffString:11:16.942

当然,
t.zzz
是一种糟糕的格式选择。它将短时格式与毫秒相结合。如您所见,在我的机器上,默认的短时格式忽略秒。所以你可以得到小时,分钟和毫秒。您需要重新考虑您的格式字符串。也许
'hh:nn:ss.zzz'
正是您所需要的。

事实上
DateTimeToString
工作正常,性能完全符合设计要求。它正在做你要求它做的事情

以下是您应该提供的SSCCE:

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  DiffString: string;
  TDT: TDateTime;

begin
  TDT := Date;
  DateTimeToString(DiffString, 't.zzz', TDT);
  Writeln('TDT: ' + DateTimeToStr(TDT));
  Writeln('DiffString: ' + DiffString);
end.
输出:

TDT: 04/02/2014 DiffString: 00:00.000 输出

TDT: 04/02/2014 11:16:43 DiffString: 11:16.942 TDT:04/02/2014 11:16:43 DiffString:11:16.942

当然,
t.zzz
是一种糟糕的格式选择。它将短时格式与毫秒相结合。如您所见,在我的机器上,默认的短时格式忽略秒。所以你可以得到小时,分钟和毫秒。您需要重新考虑您的格式字符串。也许您需要的是
'hh:nn:ss.zzz'

随机内存/未初始化变量不是随机日期时间值。从某处获取合适的日期时间,并对其进行测试。随机内存/未初始化变量不是随机日期时间值。从某处获取一个合适的日期时间,并对其进行测试。我总是建议:ISO8601时间
'yyyy-mm-dd“T”hh:nn:ss,zzzzzz“Z”
在UTC+0或使用
TimeZoneBias
我总是建议:ISO8601时间
'yyyy-mm-dd“T”hh:nn:ss,zzzzzzzz“Z”
在UTC+0或使用
TimeZoneBias