public IDateTime ToTimeZone(ITimeZone tz) { if (tz != null) { TimeZoneObservance? tzi = tz.GetTimeZoneObservance(this); if (tzi != null && tzi.HasValue) return ToTimeZone(tzi.Value); // FIXME: if the time cannot be resolved, should we // just provide a copy? Is this always appropriate? return Copy<IDateTime>(); } else throw new ArgumentException("You must provide a valid time zone to the ToTimeZone() method", "tz"); }