public void ToDateTimeOffset_Should_Convert_DateTimeTimeZone_To_DateTimeOffset() { DateTimeTimeZone dateTimeTimeZone = new DateTimeTimeZone { TimeZone = "UTC", DateTime = "2019-01-25T06:37:39.8058788Z" }; DateTime dateTime = DateTime.ParseExact(dateTimeTimeZone.DateTime, DateTimeFormat, CultureInfo.InvariantCulture); TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(dateTimeTimeZone.TimeZone); TimeSpan offset = timeZoneInfo.GetUtcOffset(dateTime); dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc); var expectedDateTimeOffset = new DateTimeOffset(dateTime, offset); var actualDateTimeOffset = dateTimeTimeZone.ToDateTimeOffset(); Assert.Equal(expectedDateTimeOffset, actualDateTimeOffset); }
public static string ToLocalTime(DateTimeTimeZone value) { // Workaround for https://github.com/microsoft/microsoft-ui-xaml/issues/2407 return(value.ToDateTimeOffset().LocalDateTime.ToString("g")); }