Skip to content

Commit 53b7dcd

Browse files
author
Andrew Omondi
committed
Fix datetime extension [skip ci]
1 parent 232f54b commit 53b7dcd

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

src/Microsoft.Graph/Models/Extensions/DateTimeZoneExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ internal static DateTimeOffset ToDateTimeOffset(this DateTime dateTime, TimeZone
9090
}
9191
else
9292
{
93-
dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
93+
dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified);
9494
offset = timeZoneInfo.GetUtcOffset(dateTime);
9595
}
9696

tests/Microsoft.Graph.DotnetCore.Test/Models/Extensions/DateTimeZoneExtensionsTests.cs

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,26 @@ public void ToDateTimeOffset_Should_Convert_DateTimeTimeZone_To_DateTimeOffset()
4545
Assert.Equal(expectedDateTimeOffset, actualDateTimeOffset);
4646
}
4747

48+
[Fact]
49+
public void ToDateTimeOffset_Should_Convert_DateTimeTimeZone_To_DateTimeOffset_With_Non_UTC()
50+
{
51+
DateTimeTimeZone dateTimeTimeZone = new DateTimeTimeZone
52+
{
53+
TimeZone = "Eastern Standard Time",
54+
DateTime = "2019-01-25T06:37:39.8058788"
55+
};
56+
57+
DateTime dateTime = DateTime.ParseExact(dateTimeTimeZone.DateTime, DateTimeFormat, CultureInfo.InvariantCulture);
58+
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(dateTimeTimeZone.TimeZone);
59+
TimeSpan offset = timeZoneInfo.GetUtcOffset(dateTime);
60+
dateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Unspecified);
61+
62+
var expectedDateTimeOffset = new DateTimeOffset(dateTime, offset);
63+
var actualDateTimeOffset = dateTimeTimeZone.ToDateTimeOffset();
64+
65+
Assert.Equal(expectedDateTimeOffset, actualDateTimeOffset);
66+
}
67+
4868
[Fact]
4969
public void FromDateTime_Should_Convert_DateTime_To_DateTimeTimeZone()
5070
{
@@ -154,4 +174,4 @@ private DateTime GetDateTimeFromDateTimeTimeZone(DateTimeTimeZone dateTimeTimeZo
154174
return dateTime;
155175
}
156176
}
157-
}
177+
}

0 commit comments

Comments
 (0)