Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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());
        }