Delphi: использование XSDateTime без преобразования времени в местный часовой пояс - PullRequest
0 голосов
/ 19 декабря 2011

Я программирую на Delphi и использую API, который возвращает XSDateTime, представляющий временной интервал встречи. Когда я пытаюсь создать локальное время данных, время конвертируется в мой часовой пояс EST (Z-05: 00 или Z-04: 00 в зависимости от летнего времени). Мне нужно время, чтобы остаться в исходном часовом поясе 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», я хочу показать 12/12/2011 @ 8:00 AM, а не 9:00 AM, что будет быть EST.

1 Ответ

1 голос
/ 19 декабря 2011

Похоже, должно работать следующее:

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