Delphi中有与之等效的东西吗?我查看了文档,找不到任何可以提供所需输出的内容。

最佳答案

kdunlapmo,DateTime.ToString(“s”)函数返回可排序的日期/时间模式;符合ISO8601。此模式声明为"yyyy-MM-ddTHH:mm:ss"。无论使用哪种文化,都必须始终以相同的格式返回日期。您可以在delphi中使用FormatDateTime函数将TDateTime值格式化为字符串。

你可以用这样的东西

FormatDateTime('yyyy-mm-dd"T"hh:mm:ss', Now);


但是您必须小心,因为-字符由DateSeparator值替换,而:字符由TimeSeparator值替换,两个变量都取决于Windows区域设置。为避免在区域性更改时获得不同结果的问题,您必须在格式字符串中明确使用-:字符。

FormatDateTime('yyyy"-"mm"-"dd"T"hh":"mm":"ss', Now)


看到这个示例代码

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.


此外,您可以编写将TDatetime值转换为可排序格式的函数,请参见此示例

function GetSortableDatetimeFormat(Value:TDateTime):string;
begin
  Result:=FormatDateTime('yyyy"-"mm"-"dd"T"hh":"mm":"ss', Value);
end;

关于c# - .NET的DateTime.ToString(“s”)的Delphi等效项(可排序的DateTime),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3572128/

10-11 11:49