diff --git a/v3/ical.NET/Evaluation/RecurrencePatternEvaluator.cs b/v3/ical.NET/Evaluation/RecurrencePatternEvaluator.cs index 19b06a1af..a52f97139 100644 --- a/v3/ical.NET/Evaluation/RecurrencePatternEvaluator.cs +++ b/v3/ical.NET/Evaluation/RecurrencePatternEvaluator.cs @@ -302,7 +302,7 @@ private HashSet GetDates(IDateTime seed, DateTime periodStart, DateTim else if (pattern.Until.Value == DateTime.MinValue || candidate <= pattern.Until.Value) { var utcCandidate = DateUtil.FromTimeZoneToTimeZone(candidate, DateUtil.GetZone(seed.TzId), DateTimeZone.Utc).ToDateTimeUtc(); - if (!dates.Contains(candidate) && (pattern.Until == DateTime.MinValue || utcCandidate <= pattern.Until)) + if (!dates.Contains(candidate) && (pattern.Until.Value == DateTime.MinValue || utcCandidate <= pattern.Until.AsUtc)) { dates.Add(candidate); } diff --git a/v3/ical.NET/Utility/DateUtil.cs b/v3/ical.NET/Utility/DateUtil.cs index 3c3232907..e6b7a827c 100644 --- a/v3/ical.NET/Utility/DateUtil.cs +++ b/v3/ical.NET/Utility/DateUtil.cs @@ -64,8 +64,7 @@ public static IDateTime MatchTimeZone(IDateTime dt1, IDateTime dt2) // The first date/time is in UTC time, convert! return new CalDateTime(copy.AsUtc); } - // The first date/time is in local time, convert! - return new CalDateTime(copy.AsSystemLocal); + return copy; } public static DateTime AddWeeks(DateTime dt, int interval, DayOfWeek firstDayOfWeek)