У меня есть следующий код для использования на моем сайте asp.net:
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
Согласно документации (выделено мое), я ожидаю, что времена в каждом EventEntry будут в центральном часовом поясе:
ctz: текущий часовой пояс. Если не указано, время возвращается в часовом поясе календаря.
- В этом часовом поясе будет представлено время в результирующем фиде .
- Замените все пробелы подчеркиванием (например, "ctz = America / Los_Angeles").
Но мой сервер находится в Аризоне, поэтому (на данный момент) все даты в календаре на два часа раньше, чем должны быть. Я делаю что-то неправильно? Как я могу получить даты в фиде в центральном часовом поясе, даже если сервер находится в Аризоне?
Я не планирую переносить хостинг в ближайшее время, но, поскольку Аризона не участвует в переходе на летнее время, я не могу просто добавить два часа к каждой дате.