public void ConvertAEDTToUTCTest() { var dtLocal = DateTime.Parse(new DateTime(2014, 4, 30, 0, 0, 0).ToString()); // convert AEDT to UTC // When AEST is DST, the difference between AEST and UTC is 11 hours // todo: need to find a way to create a AEDT localtime dtLocal = DateTime.Parse(new DateTime(2014, 3, 30, 0, 0, 0).ToString()); var dtAEDTtoUTC = TimeHelper.ConvertToTimezone(dtLocal, TimeHelper.AEST, TimeHelper.UTC); // Assert.IsTrue(dtLocal.IsDaylightSavingTime()); dtLocal.Should().Be(dtAEDTtoUTC.AddHours(11)); // convert to GMT (non-Daylight saving time) // When AEST is DST and GMT is not DST, the difference between two is 11 hours var dtAEDSTtoGMT = TimeHelper.ConvertToTimezone(dtLocal, TimeHelper.AEST, TimeHelper.GMT); dtLocal.Should().Be(dtAEDSTtoGMT.AddHours(11)); }
public void ConvertAESTToUTCTest() { // convert AEST to UTC // When AEST is not DST var dtLocal = DateTime.Parse(new DateTime(2014, 4, 30, 0, 0, 0).ToString()); var dtAESTtoUTC = TimeHelper.ConvertToTimezone(dtLocal, TimeHelper.AEST, TimeHelper.UTC); dtLocal.IsDaylightSavingTime().Should().BeFalse(); dtLocal.Should().Be(dtAESTtoUTC.AddHours(10)); // use ToUniversalTime // When AEST is not DST and GMT is not DST, the difference between AEST and GMT is 10 hours dtAESTtoUTC = dtLocal.ToUniversalTime(); dtLocal.Should().Be(dtAESTtoUTC.AddHours(_offset.Hours)); // convert to GMT (Daylight saving time) // When AEST is not DST and GMT is DST, the difference between AEST and GMT is 9 hours var dtAESTtoGMT = TimeHelper.ConvertToTimezone(dtLocal, TimeZoneInfo.Local, TimeHelper.GMT); dtAESTtoGMT.IsDaylightSavingTime().Should().BeFalse(); TimeHelper.GMT.IsDaylightSavingTime(dtAESTtoGMT).Should().BeTrue(); dtLocal.Should().Be(dtAESTtoGMT.AddHours(_offset.Hours - 1)); }
public void ConvertToTimezoneTest() { // convert local to utc DateTime dateTimeLocal = DateTime.Now; var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow); bool isDaylightSavingTime = dateTimeLocal.IsDaylightSavingTime(); if (isDaylightSavingTime) { Assert.IsTrue(dateTimeLocal.AddHours(offset.Hours * -1) == dateTimeLocal.ToUniversalTime()); } else { Assert.IsTrue(dateTimeLocal.AddHours(offset.Hours * -1) == dateTimeLocal.ToUniversalTime()); } // convert undefined to local. ToLocalTime assume the unspecified time as UTC DateTime dateTimeUnspecified = DateTime.Parse(DateTime.Today.ToString()); DateTime local = dateTimeUnspecified.ToLocalTime(); if (offset.Hours != 0) { Assert.IsFalse(dateTimeUnspecified == local); } // convert AEST to UTC // When AEST is not DST DateTime dtLocal = DateTime.Parse(new DateTime(2014, 4, 30, 0, 0, 0).ToString()); DateTime dtAESTtoUTC = TimeHelper.ConvertToTimezone(dtLocal, TimeHelper.AEST, TimeHelper.UTC); Assert.IsFalse(dtLocal.IsDaylightSavingTime()); Assert.IsTrue(dtLocal == dtAESTtoUTC.AddHours(10)); // use ToUniversalTime // When AEST is not DST and GMT is not DST, the difference between AEST and GMT is 10 hours dtAESTtoUTC = dtLocal.ToUniversalTime(); Assert.IsTrue(dtLocal == dtAESTtoUTC.AddHours(offset.Hours)); // convert to GMT (Daylight saving time) // When AEST is not DST and GMT is DST, the difference between AEST and GMT is 9 hours DateTime dtAESTtoGMT = TimeHelper.ConvertToTimezone(dtLocal, TimeZoneInfo.Local, TimeHelper.GMT); Assert.IsFalse(dtAESTtoGMT.IsDaylightSavingTime()); Assert.IsTrue(TimeHelper.GMT.IsDaylightSavingTime(dtAESTtoGMT)); Assert.IsTrue(dtLocal == dtAESTtoGMT.AddHours(offset.Hours - 1)); // convert AEDT to UTC // When AEST is DST, the difference between AEST and UTC is 11 hours // todo: need to find a way to create a AEDT localtime dtLocal = DateTime.Parse(new DateTime(2014, 3, 30, 0, 0, 0).ToString()); DateTime dtAEDTtoUTC = TimeHelper.ConvertToTimezone(dtLocal, TimeHelper.AEST, TimeHelper.UTC); // Assert.IsTrue(dtLocal.IsDaylightSavingTime()); Assert.IsTrue(dtLocal == dtAEDTtoUTC.AddHours(11)); // convert to GMT (non-Daylight saving time) // When AEST is DST and GMT is not DST, the difference between two is 11 hours DateTime dtAEDSTtoGMT = TimeHelper.ConvertToTimezone(dtLocal, TimeHelper.AEST, TimeHelper.GMT); Assert.IsTrue(dtLocal == dtAEDSTtoGMT.AddHours(11)); }