diff options
Diffstat (limited to 'src/mscorlib/shared/System/Globalization/DateTimeParse.cs')
-rw-r--r-- | src/mscorlib/shared/System/Globalization/DateTimeParse.cs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mscorlib/shared/System/Globalization/DateTimeParse.cs b/src/mscorlib/shared/System/Globalization/DateTimeParse.cs index 415341aa5e..f821a95412 100644 --- a/src/mscorlib/shared/System/Globalization/DateTimeParse.cs +++ b/src/mscorlib/shared/System/Globalization/DateTimeParse.cs @@ -2295,6 +2295,23 @@ new DS[] { DS.ERROR, DS.TX_NNN, DS.TX_NNN, DS.TX_NNN, DS.ERROR, DS.ERROR, return false; } break; + case DS.DX_NNY: + // When formatting, we only format up to the hundred digit of the Hebrew year, although Hebrew year is now over 5000. + // E.g. if the year is 5763, we only format as 763. so we do the reverse when parsing. + if (raw.year < 1000) + { + raw.year += 5000; + } + if (!GetDayOfNNY(ref result, ref raw, dtfi)) + { + return false; + } + if (!dtfi.YearMonthAdjustment(ref result.Year, ref raw.month, true)) + { + result.SetFailure(ParseFailureKind.FormatBadDateTimeCalendar, nameof(SR.Format_BadDateTimeCalendar), null); + return false; + } + break; case DS.DX_NM: case DS.DX_MN: // Deal with Month/Day pattern. |