Delphi:使用XSDateTime而不将时间转换为本地时区

Delphi:使用XSDateTime而不将时间转换为本地时区,delphi,utc,datetime-format,Delphi,Utc,Datetime Format,我正在用Delphi编程,并使用一个API返回一个表示约会时间段的XSDateTime。当我尝试创建本地数据时间时,时间将转换为我的EST时区(Z-05:00或Z-04:00,取决于DST)。我需要时间保持在CST的原始时区(Z-06:00)。我目前正在将时间格式化如下: aApptListing := FormatDateTime('yyyy/mm/dd t', aSlots[i].StartDateTime.AsDateTime); 其中StartDateTime作为CST中的时间输入(Z

我正在用Delphi编程,并使用一个API返回一个表示约会时间段的XSDateTime。当我尝试创建本地数据时间时,时间将转换为我的EST时区(Z-05:00或Z-04:00,取决于DST)。我需要时间保持在CST的原始时区(Z-06:00)。我目前正在将时间格式化如下:

aApptListing := FormatDateTime('yyyy/mm/dd t', aSlots[i].StartDateTime.AsDateTime);

其中StartDateTime作为CST中的时间输入(Z-06:00)。如何保持CST的原始时间?例如,如果日期/时间通过API显示为“2011-12-25T08:00:00-06:00”,我想显示2011年12月25日上午8:00,而不是美国东部时间的上午9:00。

看起来以下应该可以工作:

with aSlots[i].StartDateTime do
  aApptListing := FormatDateTime('yyyy/mm/dd t', EncodeDateTime(Year, Month, Day, Hour, Minute, Second, 0));