我必须为 ePrescribe 开发一个应用程序,并且需要将 UTC 时间值(例如 '2010-01-01T16:09:04.5Z')转换为本地时间。Delphi 2010,有什么建议吗?
问问题
5234 次
3 回答
1
您必须先手动解析字符串。从中提取各个值,然后您可以将它们放入 Win32SYSTEMTIME
记录并调用SystemTimeToTzSpecificLocalTime()
以将其从 UTC 转换为本地。然后,您可以根据SYSTEMTIME
需要使用转换后的内容,例如将其转换为TDateTime
using SystemTimeToDateTime()
。
于 2013-04-11T17:36:24.480 回答
0
您的计算机提供您的时区。您可以使用它们来操纵 UTC 时间,通过添加小时和分钟来进行调整。
于 2013-04-11T14:28:08.773 回答
0
您可以使用TXSDateTime
单元中的课程XSBuiltIns
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
XSBuiltIns;
var xsDateTime: TXSDateTime;
input, output: string;
date: TDateTime;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
input := '2010-01-01T16:09:04.5Z';
xsDateTime := TXSDateTime.Create;
xsDateTime.XSToNative(input);
date := xsDateTime.AsDateTime;
output := 'Parsed date/time: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss', date);
writeln(output);
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
输出:
Parsed date/time: 2010-01-01 19:09:04
于 2014-01-10T09:48:22.997 回答