0

是否有任何简单的选项可以将美国TDateTimeApr 17, 2014 8:35:38 PM 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; 

(德尔福 XE4)

4

1 回答 1

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

于 2014-05-04T22:25:10.810 回答