У меня есть следующий код для использования на моем сайте asp.net:Как управлять часовым поясом событий, возвращаемых API Google Calendar Google?
CalendarService service = new CalendarService("mycalendar");
EventQuery query = new EventQuery();
query.Uri = new Uri(group.GroupEventsURL);
query.SingleEvents = true;
query.SortOrder = CalendarSortOrder.ascending;
query.ExtraParameters = "orderby=starttime";
query.NumberToRetrieve = 50;
query.TimeZone = "America/Chicago";
EventFeed feed = service.Query(query);
Который производит следующий URL:
http://www.google.com/calendar/feeds/TRIMMEDgroup.calendar.google.com/private-TRIMMED/full?max-results=50&orderby=starttime&ctz=America%2FChicago&sortorder=ascending&singleevents=true
Согласно documentation (курсив мой), я ожидаю, Времена в каждом EventEntry быть в Центральном часовом поясе:
ctz: Текущий часовой пояс. Если не указано, время возвращается в часовой пояс календаря.
- Времена в результате подачи будут представлены в этом часовом поясе.
- Заменить все пробелы символами подчеркивания (например, «ctz = America/Los_Angeles»).
Но мой сервер размещен в Аризоне, так что (сейчас) все даты в календаре два часа раньше, чем они должны быть. Я делаю что-то неправильно? Как получить даты в фиде в Центральном часовом поясе, даже если сервер находится в Аризоне?
Я не планирую перемещать свой хостинг в ближайшее время, но поскольку Аризона не участвует в летнем времени, я не могу просто добавить два часа к каждой дате.