/// <summary> /// Converts the date/time value to a local time /// within the specified time zone. /// </summary> /// <param name="tzo"></param> /// <returns></returns> public IDateTime ToTimeZone(TimeZoneObservance tzo) { ITimeZoneInfo tzi = tzo.TimeZoneInfo; if (tzi != null) { return(new iCalDateTime(tzi.OffsetTo.ToLocal(Utc), tzo)); } return(null); }
/// <summary> /// Initializes the specified value. /// </summary> /// <param name="value">The value.</param> /// <param name="tzo">The time zone observance.</param> private void Initialize(DateTime value, TimeZoneObservance tzo) { if (value.Kind == DateTimeKind.Utc) { IsUniversalTime = true; } // Convert all incoming values to UTC. Value = DateTime.SpecifyKind(value, DateTimeKind.Utc); HasDate = true; HasTime = (value.Second != 0 || value.Minute != 0 || value.Hour != 0); if (tzo.TimeZoneInfo != null) { TzId = tzo.TimeZoneInfo.TzId; } TimeZoneObservance = tzo; AssociatedObject = tzo.TimeZoneInfo; }
/// <summary> /// Initializes a new instance of the <see cref="iCalDateTime" /> class. /// </summary> /// <param name="value">The value.</param> /// <param name="tzo">The time zone observance.</param> public iCalDateTime(DateTime value, TimeZoneObservance tzo) { Initialize(value, tzo); }