簡體   English   中英

.NET的DateTime.ToString(“ s”)的Delphi等效項(可排序的DateTime)

[英]Delphi equivalent of .net's DateTime.ToString(“s”) (DateTime Sortable)

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;

小錯誤修正-正確的是:

結果:= FormatDateTime('yyyy“-” mm“-” dd“ T” hh“:” nn“:” ss',Value);

(分鍾是“ nn”,不是“ mm”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM