1

ePrescribe 用のアプリケーションを開発する必要があり、UTC 時間値 (たとえば、'2010-01-01T16:09:04.5Z') を現地時間に変換する必要があります。Delphi 2010、何か提案はありますか?

4

3 に答える 3

1

最初に文字列を手動で解析する必要があります。そこから個々の値を抽出し、それらを Win32SYSTEMTIMEレコードに入れ、呼び出しSystemTimeToTzSpecificLocalTime()て UTC からローカルに変換することができます。その後、変換されたものを usingSYSTEMTIMEに変換するなど、必要に応じて使用できます。TDateTimeSystemTimeToDateTime()

于 2013-04-11T17:36:24.480 に答える
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 に答える
0

お使いのコンピュータがタイム ゾーンを提供します。これらを使用して UTC 時間を操作し、時間と分を追加して調整できます。

于 2013-04-11T14:28:08.773 に答える