var
tm : string;
dt : tdatetime;
tm := 2009-08-21T09:11:21Z ;
dt := ?
我知道,我可以人工归结,但我想知道是否有任何内在功能或Win32的预报功能来这样做?
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;
如果您使用Indy 10,其StrInternetToDatetime(
)和GMTTo LocalDatetime(
Id Global Protocols Unit)功能(见Id Global protocols
>,可按ISO-8601格式进行扼制。
这看起来像一项与互联网协议相关的活动,因此,在为此使用Win32APIC时,你不应有任何问题。 但值得注意的是,视窗在20多年的历史日期上,并不正确地支持从UTC转换到/从UTC,而Windows却在其时间区环境中没有足够详细的资料。