EWS托管API通过夏令时详细信息获取与会者时区

时间:2014-11-20 13:51:41

标签: c# exchangewebservices ews-managed-api

我使用GetUserAvailability操作来获取与会者可用性详细信息 我正在获得AttendeeAvailability,它包含一个WorkingHours属性,它本身包含TimeZone。 BUt问题是它只给出了偏移量。如果有夏令时,我怎么知道?如何找到实际的时区字符串或如何知道偏移量是夏令时还是没有夏令时?

进一步解释:

我想在调度程序中显示会议与会者的时区和时间。我从AttendeeAvailability的WorkingHours属性获得时区。它不给出实际的时区字符串,并给出GMT的偏移量。所以我在内部有一个映射,用于将时区映射到偏移量并在工具提示中显示,时区,与会者可能属于。但要做到这一点,我应该知道夏令时是否有效,因为EST5EDT将没有夏令时UTC - 5,但夏令时将是UTC - 4.所以如果我得到-5的偏移,我不会由于夏令时,知道是否在工具提示中显示EST5EDT。所以我想要获得参与者的时区字符串,或者要知道DST是否在一年中的这一部分生效。

GetUserAvailabilityResults freeBusyResults = service.GetUserAvailability(
    attendees, 
    new TimeWindow(meetingStartDateTime, meetingEndDateTime), 
    AvailabilityData.FreeBusy,
    myOptions
);
if (availability != null && availability.WorkingHours != null && availability.WorkingHours.TimeZone != null)
{
    TimeZoneInfo tzi = (TimeZoneInfo)availability.WorkingHours.TimeZone;

    listAttendee[i].TimeZone = tzi;
    listAttendee[i].StandardNameTZ = GetStandardNameTZ(tzi);
}

0 个答案:

没有答案