Hast du denn den Aufruf für den Bias mal aufgeschlüsselt und dir nach jeden Step Log-Ausgaben gemacht?
Eigentlich sehe ich in Tokyo keine Plattform-spezifischen Sachen, aber ich habe auch nicht gründlich nachgeschaut.
Delphi-Quellcode:
uses
System.DateUtils,
Soap.InvokeRegistry, System.TimeSpan;
function DateTimeToXMLTime(Value: TDateTime; ApplyLocalBias: Boolean = True): InvString;
const
Neg:
array[Boolean]
of string= ('
+', '
-');
var
Bias: Integer;
tz:TTimeZone;
Offset: TTimeSpan;
NegOffset: TTimeSpan;
TotalMinutsBias: Double;
begin
Result := FormatDateTime('
yyyy''
-''
mm''
-''
dd''
T''
hh''
:''
nn''
:''
ss''
.''
zzz', Value);
{ Do not localize }
tz := TTimeZone.
Local;
Offset := tz.GetUTCOffset(Value);
NegOffset := Offset.Negate;
TotalMinutsBias := NegOffset.TotalMinutes;
Bias := Trunc(TotalMinutsBias);
if (Bias <> 0)
and ApplyLocalBias
then
begin
Result := Format('
%s%s%.2d:%.2d', [Result, Neg[Bias > 0],
{ Do not localize }
Abs(Bias)
div MinsPerHour,
Abs(Bias)
mod MinsPerHour]);
end else
Result := Result + '
Z';
{ Do not localize }
end;