Skip to content

Commit d13cc84

Browse files
authored
Fix FormatException message argument (#95356)
1 parent 80c6593 commit d13cc84

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeParse.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,7 +1547,7 @@ private static void GetDefaultYear(ref DateTimeResult result, scoped ref DateTim
15471547
result.flags |= ParseFlags.YearDefault;
15481548
}
15491549

1550-
// Processing teriminal case: DS.DX_NN
1550+
// Processing terminal case: DS.DX_NN
15511551
private static bool GetDayOfNN(ref DateTimeResult result, scoped ref DateTimeStyles styles, scoped ref DateTimeRawInfo raw, DateTimeFormatInfo dtfi)
15521552
{
15531553
if ((result.flags & ParseFlags.HaveDate) != 0)
@@ -1589,7 +1589,7 @@ private static bool GetDayOfNN(ref DateTimeResult result, scoped ref DateTimeSty
15891589
return false;
15901590
}
15911591

1592-
// Processing teriminal case: DS.DX_NNN
1592+
// Processing terminal case: DS.DX_NNN
15931593
private static bool GetDayOfNNN(ref DateTimeResult result, scoped ref DateTimeRawInfo raw, DateTimeFormatInfo dtfi)
15941594
{
15951595
if ((result.flags & ParseFlags.HaveDate) != 0)
@@ -5183,7 +5183,7 @@ private static Exception GetDateTimeParseException(scoped ref DateTimeResult res
51835183
case ParseFailureKind.Format_BadDatePattern:
51845184
return new FormatException(SR.Format(SR.Format_BadDatePattern, result.failureMessageFormatArgument));
51855185
case ParseFailureKind.Format_BadDateTime:
5186-
return new FormatException(SR.Format(SR.Format_BadDateTime, result.failureMessageFormatArgument));
5186+
return new FormatException(SR.Format(SR.Format_BadDateTime, new string(result.originalDateTimeString)));
51875187
case ParseFailureKind.Format_BadDateTimeCalendar:
51885188
return new FormatException(SR.Format(SR.Format_BadDateTimeCalendar, new string(result.originalDateTimeString), result.calendar));
51895189
case ParseFailureKind.Format_BadDayOfWeek:
@@ -6124,7 +6124,6 @@ internal void SetBadFormatSpecifierFailure(ReadOnlySpan<char> failedFormatSpecif
61246124
internal void SetBadDateTimeFailure()
61256125
{
61266126
this.failure = ParseFailureKind.Format_BadDateTime;
6127-
this.failureMessageFormatArgument = null;
61286127
}
61296128

61306129
internal void SetFailure(ParseFailureKind failure)

src/libraries/System.Runtime/tests/System/DateTimeTests.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public void Ctor_DateOnly_TimeOnly(int year, int month, int day, int hour, int m
114114
var date = new DateOnly(year, month, day);
115115
var time = new TimeOnly(hour, minute, second, millisecond);
116116
var dateTime = new DateTime(date, time);
117-
117+
118118
Assert.Equal(new DateTime(year, month, day, hour, minute, second, millisecond), dateTime);
119119
}
120120

@@ -125,7 +125,7 @@ public void Ctor_DateOnly_TimeOnly_DateTimeKind(int year, int month, int day, in
125125
var date = new DateOnly(year, month, day);
126126
var time = new TimeOnly(hour, minute, second, millisecond);
127127
var dateTime = new DateTime(date, time, DateTimeKind.Local);
128-
128+
129129
Assert.Equal(new DateTime(year, month, day, hour, minute, second, millisecond, DateTimeKind.Local), dateTime);
130130
}
131131

@@ -2984,5 +2984,12 @@ public void TestDateTimeCalculationPrecision(double value, DateTime initialValue
29842984
break;
29852985
}
29862986
}
2987+
2988+
[Fact]
2989+
public void TestBadFormatException()
2990+
{
2991+
FormatException ex = Assert.Throws<FormatException>(() => DateTime.ParseExact("11.2023", "dd.mm.yyyy", System.Globalization.CultureInfo.InvariantCulture));
2992+
Assert.Contains("11.2023", ex.Message, StringComparison.Ordinal);
2993+
}
29872994
}
29882995
}

0 commit comments

Comments
 (0)