public void FindSystemTimeZoneById() { TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(TimeZoneInfoTest.MapTimeZoneId("Canada/Eastern")); Assert.IsTrue("EDT" == tzi.DaylightName || "Eastern Daylight Time" == tzi.DaylightName, "DaylightName"); Assert.IsTrue("EST" == tzi.StandardName || "Eastern Standard Time" == tzi.StandardName, "StandardName"); Assert.IsTrue(tzi.SupportsDaylightSavingTime, "SupportsDaylightSavingTime"); }
public void GetUTCNowAtDSTBoundaries() { TimeZoneInfo.TransitionTime startTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 3, 5, DayOfWeek.Sunday); TimeZoneInfo.TransitionTime endTransition = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 10, 5, DayOfWeek.Sunday); TimeSpan delta = TimeSpan.FromMinutes(60.0); TimeZoneInfo.AdjustmentRule adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1970, 1, 1), DateTime.MaxValue.Date, delta, startTransition, endTransition); TimeZoneInfo.TransitionTime startTrans = adjustment.DaylightTransitionStart; TimeZoneInfo.TransitionTime endTrans = adjustment.DaylightTransitionEnd; TimeZoneInfo.AdjustmentRule[] adjustments = { adjustment }; TimeZoneInfo tzInfo = TimeZoneInfo.CreateCustomTimeZone("MY Standard Time", TimeSpan.Zero, "MST", "MST", "MDT", adjustments); TimeZoneInfoTest.SetLocal(tzInfo); DateTime st = new DateTime(2016, 3, 27, 1, 0, 0, DateTimeKind.Local); Assert.IsTrue(!tzInfo.IsDaylightSavingTime(st)); Assert.IsTrue(!tzInfo.IsAmbiguousTime(st)); Assert.IsTrue((TimeZoneInfo.ConvertTimeToUtc(st).Hour == 1)); st = new DateTime(2016, 3, 27, 3, 0, 0, DateTimeKind.Local); Assert.IsTrue(tzInfo.IsDaylightSavingTime(st)); Assert.IsTrue(!tzInfo.IsAmbiguousTime(st)); Assert.IsTrue((TimeZoneInfo.ConvertTimeToUtc(st).Hour == 2)); st = new DateTime(2016, 10, 30, 2, 0, 0, DateTimeKind.Local); #if !MOBILE Assert.IsFalse(tzInfo.IsDaylightSavingTime(st)); Assert.IsFalse(!tzInfo.IsAmbiguousTime(st)); Assert.IsFalse((TimeZoneInfo.ConvertTimeToUtc(st).Hour == 1)); st = new DateTime(2016, 10, 30, 3, 0, 0, DateTimeKind.Local); Assert.IsTrue(!tzInfo.IsDaylightSavingTime(st)); Assert.IsFalse(tzInfo.IsAmbiguousTime(st)); Assert.IsTrue((TimeZoneInfo.ConvertTimeToUtc(st).Hour == 3)); st = new DateTime(2016, 10, 30, 4, 0, 0, DateTimeKind.Local); Assert.IsTrue(!tzInfo.IsDaylightSavingTime(st)); Assert.IsTrue(!tzInfo.IsAmbiguousTime(st)); Assert.IsTrue((TimeZoneInfo.ConvertTimeToUtc(st).Hour == 4)); #endif }