gpt4 book ai didi

Delphi:DateTimeToStr 输出为零时间(午夜)

转载 作者:行者123 更新时间:2023-12-03 15:44:48 27 4
gpt4 key购买 nike

我发现了类似的问题here ,但这与我想做的事情无关。我在互联网上做了很多研究,我确定 Delphi 正在按设计或预期工作,如果时间为零,它会忽略时间。我有一个在 ListView 中显示日期和时间的应用程序,当时间为午夜时,它不会显示 00:00:00,因此使结果看起来不均匀且不合适。

我解决这个问题的方法仍然与区域设置无关,就是在时间上添加一微秒,请参阅示例代码:

program Test11;

{$APPTYPE CONSOLE}
{$R *.res}

uses
System.SysUtils, Winapi.Windows;

begin
try
Writeln(DateTimeToStr(44167, TFormatSettings.Create(GetThreadLocale)));
Writeln(DateTimeToStr(44167.00000001, TFormatSettings.Create(GetThreadLocale)));
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;

end.

以及后续输出:

02/12/2020
02/12/2020 00:00:00

问题是 - 是否有更好、更正确的方法来实现这一目标?

运行Delphi XE6

最佳答案

您可以使用FormatDateTime函数可以更好地控制日期时间格式。

FormatDateTime('ddddd tt', 44167, TFormatSettings.Create);
<小时/>

注意:无需使用区域设置参数调用 TFormatSettings.Create(GetThreadLocale),因为普通 TFormattSettings.Create 调用将在内部使用 GetThreadLocale > 在 Windows 平台上。

关于Delphi:DateTimeToStr 输出为零时间(午夜),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37430862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com