RRU*_*RUZ 10
kdunlapmo,DateTime.ToString("s")函数返回一个可排序的日期/时间模式; 符合ISO 8601.此模式声明为"yyyy-MM-ddTHH:mm:ss".无论文化如何,日期必须始终以相同的格式返回.您可以使用delphi中的FormatDateTime函数将TDateTime值格式化为字符串.
你可以使用这样的东西
FormatDateTime('yyyy-mm-dd"T"hh:mm:ss', Now);
Run Code Online (Sandbox Code Playgroud)
但是您必须小心,因为该-字符由DateSeparator值替换,并且该:字符由TimeSeparator值替换,这两个变量都取决于Windows语言环境配置.因此要避免让不同的结果时,文化的变化,你必须使用显式的问题-和:您的格式字符串中的字符.
FormatDateTime('yyyy"-"mm"-"dd"T"hh":"mm":"ss', Now)
Run Code Online (Sandbox Code Playgroud)
请参阅此示例代码
program ProjectTestFormat;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
try
DateSeparator:='/';
TimeSeparator:='.';
//this string is affected by the windows locale configuration
Writeln(FormatDateTime('yyyy-mm-dd"T"hh:mm:ss', Now));
//this string is not affected
Writeln(FormatDateTime('yyyy"-"mm"-"dd"T"hh":"mm":"ss', Now));
Readln;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
Run Code Online (Sandbox Code Playgroud)
此外,您可以编写一个函数将TDatetime值转换为可排序格式,请参阅此示例
function GetSortableDatetimeFormat(Value:TDateTime):string;
begin
Result:=FormatDateTime('yyyy"-"mm"-"dd"T"hh":"mm":"ss', Value);
end;
Run Code Online (Sandbox Code Playgroud)