var ticks = dateTime.Ticks - sourceTimeZone.BaseUtcOffset.Ticks;
if (ticks < DateTime.MinValue.Ticks)
ticks = DateTime.MinValue.Ticks;
+ else if (ticks > DateTime.MaxValue.Ticks)
+ ticks = DateTime.MaxValue.Ticks;
return new DateTime (ticks, DateTimeKind.Utc);
}
}
[Test]
- public void ConvertTimeToUtc_MinValue ()
+ public void ConvertTimeToUtc_Overflow ()
{
- var dt = new DateTime (0);
- var res = TimeZoneInfo.ConvertTimeToUtc (dt);
- Assert.AreEqual (res.Kind, DateTimeKind.Utc);
+ var res = TimeZoneInfo.ConvertTimeToUtc (new DateTime (0));
+ Assert.AreEqual (res.Kind, DateTimeKind.Utc, "#1");
+
+ res = TimeZoneInfo.ConvertTimeToUtc (DateTime.MaxValue);
+ Assert.AreEqual (res.Kind, DateTimeKind.Utc, "#2");
}
[Test]