Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3792,22 +3792,13 @@ private static bool CheckNewValue(scoped ref int currentValue, int newValue, cha

private static DateTime GetDateTimeNow(scoped ref DateTimeResult result, scoped ref DateTimeStyles styles)
{
if ((result.flags & ParseFlags.CaptureOffset) != 0)
if ((result.flags & (ParseFlags.CaptureOffset | ParseFlags.TimeZoneUsed)) == (ParseFlags.CaptureOffset | ParseFlags.TimeZoneUsed))
{
if ((result.flags & ParseFlags.TimeZoneUsed) != 0)
{
// use the supplied offset to calculate 'Now'
return new DateTime(DateTime.UtcNow.Ticks + result.timeZoneOffset.Ticks, DateTimeKind.Unspecified);
}
else if ((styles & DateTimeStyles.AssumeUniversal) != 0)
{
// assume the offset is Utc
return DateTime.UtcNow;
}
// use the supplied offset to calculate 'Now'
return new DateTime(DateTime.UtcNow.Ticks + result.timeZoneOffset.Ticks, DateTimeKind.Unspecified);
}

// assume the offset is Local
return DateTime.Now;
return (styles & DateTimeStyles.AssumeUniversal) != 0 ? DateTime.UtcNow : DateTime.Now;
}

private static bool CheckDefaultDateTime(scoped ref DateTimeResult result, scoped ref Calendar cal, DateTimeStyles styles)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2687,6 +2687,17 @@ public void TestRoundTrippingDateTimeAndFileTime()
Assert.Equal(now, roundTrippedDateTime);
}

[Fact]
public void TestParseTimeOnlyStringWithAssumeUtcOption()
{
DateTime utcNow1 = DateTime.UtcNow;
DateTime dt = DateTime.Parse("13:30", null, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal);
DateTime utcNow2 = DateTime.UtcNow;

// Ensure the parsed date part is in UTC.
Assert.InRange(dt.Date, utcNow1.Date, utcNow2.Date);
}

[Fact]
[PlatformSpecific(TestPlatforms.Windows)]
public void TestTimeSynchronizationWithTheSystem()
Expand Down