public static byte[] GetTimeZoneBlob(ExTimeZone timeZone) { if (timeZone == null) { throw new ArgumentNullException("timeZone"); } if (timeZone == ExTimeZone.UnspecifiedTimeZone) { throw new ArgumentException("timeZone should not be UnspecifiedTimeZone"); } string keyName = timeZone.IsCustomTimeZone ? timeZone.AlternativeId : timeZone.Id; return(O12TimeZoneFormatter.GenerateBlobFromRuleGroups(keyName, timeZone.TimeZoneInformation.Groups)); }
public static byte[] GetTimeZoneBlob(ExTimeZone timeZone, ExDateTime time) { if (timeZone == null) { throw new ArgumentNullException("timeZone"); } if (timeZone == ExTimeZone.UnspecifiedTimeZone) { throw new ArgumentException("timeZone should not be UnspecifiedTimeZone"); } DateTime universalTime = time.UniversalTime; ExTimeZoneRule ruleForUtcTime = timeZone.TimeZoneInformation.GetRuleForUtcTime(universalTime); if (ruleForUtcTime != null && ruleForUtcTime.RuleGroup != null) { List <ExTimeZoneRuleGroup> list = new List <ExTimeZoneRuleGroup>(); list.Add(ruleForUtcTime.RuleGroup); return(O12TimeZoneFormatter.GenerateBlobFromRuleGroups(timeZone.AlternativeId, list)); } throw new ArgumentException("no time zone rule found for specified time: " + time.ToString()); }