Skip to content

Commit f0fa94f

Browse files
authored
Fix the Syndication Feed RFC822 DateTimeParser (#99194)
* Fix the Syndication RFC822 DateTimeParser RFC822 allows single-digit date values and two-digit year values in the publication date (pubDate). The existing date-time parser only accepted two-digit dates and (for some formats) four-digit years. * Remove trailing whitespace in parseFormat array
1 parent 5aa2a3a commit f0fa94f

File tree

1 file changed

+17
-17
lines changed
  • src/libraries/System.ServiceModel.Syndication/src/System/ServiceModel/Syndication

1 file changed

+17
-17
lines changed

src/libraries/System.ServiceModel.Syndication/src/System/ServiceModel/Syndication/DateTimeHelper.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -92,28 +92,28 @@ private static bool Rfc822DateTimeParser(string dateTimeString, out DateTimeOffs
9292
DateTimeOffset theTime;
9393
string[] parseFormat =
9494
{
95-
"ddd, dd MMMM yyyy HH:mm:ss zzz",
96-
"dd MMMM yyyy HH:mm:ss zzz",
97-
"ddd, dd MMM yyyy HH:mm:ss zzz",
98-
"dd MMM yyyy HH:mm:ss zzz",
95+
"ddd, d MMMM yyyy HH:mm:ss zzz",
96+
"d MMMM yyyy HH:mm:ss zzz",
97+
"ddd, d MMM yyyy HH:mm:ss zzz",
98+
"d MMM yyyy HH:mm:ss zzz",
9999

100-
"ddd, dd MMMM yyyy HH:mm zzz",
101-
"dd MMMM yyyy HH:mm zzz",
102-
"ddd, dd MMM yyyy HH:mm zzz",
103-
"dd MMM yyyy HH:mm zzz",
100+
"ddd, d MMMM yyyy HH:mm zzz",
101+
"d MMMM yyyy HH:mm zzz",
102+
"ddd, d MMM yyyy HH:mm zzz",
103+
"d MMM yyyy HH:mm zzz",
104104

105105
// The original RFC822 spec listed 2 digit years. RFC1123 updated the format to include 4 digit years and states that you should use 4 digits.
106106
// Technically RSS2.0 specifies RFC822 but it's presumed that RFC1123 will be used as we're now past Y2K and everyone knows better. The 4 digit
107107
// formats are listed first for performance reasons as it's presumed they will be more likely to match first.
108-
"ddd, dd MMMM yy HH:mm:ss zzz",
109-
"dd MMMM yyyy HH:mm:ss zzz",
110-
"ddd, dd MMM yy HH:mm:ss zzz",
111-
"dd MMM yyyy HH:mm:ss zzz",
112-
113-
"ddd, dd MMMM yy HH:mm zzz",
114-
"dd MMMM yyyy HH:mm zzz",
115-
"ddd, dd MMM yy HH:mm zzz",
116-
"dd MMM yyyy HH:mm zzz"
108+
"ddd, d MMMM yy HH:mm:ss zzz",
109+
"d MMMM yy HH:mm:ss zzz",
110+
"ddd, d MMM yy HH:mm:ss zzz",
111+
"d MMM yy HH:mm:ss zzz",
112+
113+
"ddd, d MMMM yy HH:mm zzz",
114+
"d MMMM yy HH:mm zzz",
115+
"ddd, d MMM yy HH:mm zzz",
116+
"d MMM yy HH:mm zzz"
117117
};
118118

119119
if (DateTimeOffset.TryParseExact(wellFormattedString, parseFormat,

0 commit comments

Comments
 (0)