kdunlapmo, функция DateTime.ToString («s») возвращает сортируемый шаблон даты / времени;соответствует ISO 8601. этот шаблон объявлен как "yyyy-MM-ddTHH:mm:ss"
.независимо от культуры, дата должна всегда возвращаться в одном и том же формате.Вы можете использовать функцию FormatDateTime в Delphi для форматирования значения 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;