Конвертировать значение TDateTime в США для корректного отображения в европейском формате

Есть ли простой вариант для конвертации в США? TDateTime значение 17 апреля 2014 20:35:38 PDT в европейский формат выглядит как 2014-04-17 20:35:38?

РЕДАКТИРОВАТЬ:

У меня есть строка, содержащая необработанные дату / время в формате США:

var s, new_s: string;
begin
  s := 'Apr 17, 2014 8:35:38 PM PDT';

Я хочу как-то прочитать / разобрать эту строку в переменной TDateTime введите -или- просто преобразовать его в другую строку нужного формата:

  new_s := MyConvertDateTimeSring(s);
  // now new_s must be '2014-04-17 20:35:38';
end; 

(Delphi XE4)

1 ответ

Решение

Если вы удалите TimeZone PDT из строки, то вы можете использовать VarToDateTime преобразовать строку в TDateTime значение

var
  LDateTimeStr : string;
  LDateTime : TDateTime;
begin
  LDateTimeStr := 'Apr 17, 2014 8:35:38 PM PDT';
  LDateTime := VarToDateTime( Copy( LDateTimeStr, 1, 23 ) );
  WriteLn( FormatDateTime( 'yyyy-mm-dd hh:nn:ss', LDateTime ) );
end;

Результат будет

2014-04-17 20:35:38

Другие вопросы по тегам