English 中文(简体)
Convert UTCstring to TDatetime in Delphi
原标题:Convert UTC string to TDatetime in Delphi
  • 时间:2009-10-20 22:54:07
  •  标签:
var
  tm : string;
  dt : tdatetime;

tm :=  2009-08-21T09:11:21Z ;
dt := ?

我知道,我可以人工归结,但我想知道是否有任何内在功能或Win32的预报功能来这样做?

问题回答

我不知道为什么这么多的人在不知道他们谈论什么时就开枪打他们的嘴? 我必须做这一男性工作;这是否是撒哈拉沙漠以南地区发展协会的工具? 有时,我发现Delphi有真正的超级结构。

procedure setISOtoDateTime(strDT: string);
var
  // Delphi settings save vars
  ShortDF, ShortTF : string;
  TS, DS : char;
  // conversion vars
  dd, tt, ddtt: TDateTime;
begin
  // example datetime test string in ISO format
  strDT :=  2009-07-06T01:53:23Z ;

  // save Delphi settings
  DS := DateSeparator;
  TS := TimeSeparator;
  ShortDF := ShortDateFormat;
  ShortTF := ShortTimeFormat;

  // set Delphi settings for string to date/time
  DateSeparator :=  - ;
  ShortDateFormat :=  yyyy-mm-dd ;
  TimeSeparator :=  : ;
  ShortTimeFormat :=  hh:mm:ss ;

  // convert test string to datetime
  try

    dd := StrToDate( Copy(strDT, 1, Pos( T ,strDT)-1) );
    tt := StrToTime( Copy(strDT, Pos( T ,strDT)+1, 8) );
    ddtt := trunc(dd) + frac(tt);

  except
    on EConvertError do
      ShowMessage( Error in converting :   + strDT);
  end;

  // restore Delphi settings
  DateSeparator := DS;
  ShortDateFormat := ShortDF;
  TimeSeparator := TS;
  ShortTimeFormat := ShortTF;

  // display test string
  ShowMessage ( FormatDateTime( mm/dd/yyyy hh:mm:ss , ddtt) );
end;

rel=“nofollow noreferer”>http://coding.derkeiler.com/Archive/Delphi/comp.lang.pascal.delphic/2006-08/msg00190.html

如果您使用Indy 10,其StrInternetToDatetime()和GMTTo LocalDatetime(Id Global Protocols Unit)功能(见Id Global protocols>,可按ISO-8601格式进行扼制。

这看起来像一项与互联网协议相关的活动,因此,在为此使用Win32APIC时,你不应有任何问题。 但值得注意的是,视窗在20多年的历史日期上,并不正确地支持从UTC转换到/从UTC,而Windows却在其时间区环境中没有足够详细的资料。





相关问题
热门标签