<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/index.php?action=history&amp;feed=atom&amp;title=Rfc822DateTimeFormat_%28c</id>
	<title>Rfc822DateTimeFormat (c - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/index.php?action=history&amp;feed=atom&amp;title=Rfc822DateTimeFormat_%28c"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Rfc822DateTimeFormat_(c&amp;action=history"/>
	<updated>2026-05-08T08:33:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Rfc822DateTimeFormat_(c&amp;diff=6764&amp;oldid=prev</id>
		<title>Ajastrem: New page: &lt;source lang=csharp&gt; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Globalization;  namespace Scream.RSS {       /// &lt;summary&gt;     /// P...</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Rfc822DateTimeFormat_(c&amp;diff=6764&amp;oldid=prev"/>
		<updated>2010-04-16T11:18:10Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;lt;source lang=csharp&amp;gt; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Globalization;  namespace Scream.RSS {       /// &amp;lt;summary&amp;gt;     /// P...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=csharp&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Globalization;&lt;br /&gt;
&lt;br /&gt;
namespace Scream.RSS {&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    /// &amp;lt;summary&amp;gt;&lt;br /&gt;
    /// Provides methods for converting &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; structures &lt;br /&gt;
    /// to and from the equivalent &amp;lt;a href=&amp;quot;http://www.w3.org/Protocols/rfc822/#z28&amp;quot;&amp;gt;RFC 822&amp;lt;/a&amp;gt; &lt;br /&gt;
    /// string representation.&lt;br /&gt;
    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
    public class Rfc822DateTime {&lt;br /&gt;
        //============================================================&lt;br /&gt;
        //  Private members&lt;br /&gt;
        //============================================================&lt;br /&gt;
        #region Private Members&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Private member to hold array of formats that RFC 822 date-time representations conform to.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        private static string[] formats = new string[0];&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Private member to hold the DateTime format string for representing a DateTime in the RFC 822 format.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        private const string format = &amp;quot;ddd, dd MMM yyyy HH:mm:ss K&amp;quot;;&lt;br /&gt;
        #endregion&lt;br /&gt;
&lt;br /&gt;
        //============================================================&lt;br /&gt;
        //  Public Properties&lt;br /&gt;
        //============================================================&lt;br /&gt;
        #region Rfc822DateTimeFormat&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets the custom format specifier that may be used to represent a &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; in the RFC 822 format.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;A &amp;lt;i&amp;gt;DateTime format string&amp;lt;/i&amp;gt; that may be used to represent a &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; in the RFC 822 format.&amp;lt;/value&amp;gt;&lt;br /&gt;
        /// &amp;lt;remarks&amp;gt;&lt;br /&gt;
        /// &amp;lt;para&amp;gt;&lt;br /&gt;
        /// This method returns a string representation of a &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; that utilizes the time zone &lt;br /&gt;
        /// offset (local differential) to represent the offset from Greenwich mean time in hours and minutes. &lt;br /&gt;
        /// The &amp;lt;see cref=&amp;quot;Rfc822DateTimeFormat&amp;quot;/&amp;gt; is a valid date-time format string for use &lt;br /&gt;
        /// in the &amp;lt;see cref=&amp;quot;DateTime.ToString(String, IFormatProvider)&amp;quot;/&amp;gt; method.&lt;br /&gt;
        /// &amp;lt;/para&amp;gt;&lt;br /&gt;
        /// &amp;lt;para&amp;gt;&lt;br /&gt;
        /// The &amp;lt;a href=&amp;quot;http://www.w3.org/Protocols/rfc822/#z28&amp;quot;&amp;gt;RFC 822&amp;lt;/a&amp;gt; Date and Time specification &lt;br /&gt;
        /// specifies that the year will be represented as a two-digit value, but the &lt;br /&gt;
        /// &amp;lt;a href=&amp;quot;http://www.rssboard.org/rss-profile#data-types-datetime&amp;quot;&amp;gt;RSS Profile&amp;lt;/a&amp;gt; recommends that &lt;br /&gt;
        /// all date-time values should use a four-digit year. The &amp;lt;see cref=&amp;quot;Rfc822DateTime&amp;quot;/&amp;gt; class &lt;br /&gt;
        /// follows the RSS Profile recommendation when converting a &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; to the equivalent &lt;br /&gt;
        /// RFC 822 string representation.&lt;br /&gt;
        /// &amp;lt;/para&amp;gt;&lt;br /&gt;
        /// &amp;lt;/remarks&amp;gt;&lt;br /&gt;
        public static string Rfc822DateTimeFormat {&lt;br /&gt;
            get {&lt;br /&gt;
                return format;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
&lt;br /&gt;
        #region Rfc822DateTimePatterns&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Gets an array of the expected formats for RFC 822 date-time string representations.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;value&amp;gt;&lt;br /&gt;
        /// An array of the expected formats for RFC 822 date-time string representations &lt;br /&gt;
        /// that may used in the &amp;lt;see cref=&amp;quot;DateTime.TryParseExact(String, string[], IFormatProvider, DateTimeStyles, out DateTime)&amp;quot;/&amp;gt; method.&lt;br /&gt;
        /// &amp;lt;/value&amp;gt;&lt;br /&gt;
        /// &amp;lt;remarks&amp;gt;&lt;br /&gt;
        /// The array of the expected formats that is returned assumes that the RFC 822 time zone &lt;br /&gt;
        /// is represented as or converted to a local differential representation.&lt;br /&gt;
        /// &amp;lt;/remarks&amp;gt;&lt;br /&gt;
        /// &amp;lt;seealso cref=&amp;quot;ConvertZoneToLocalDifferential(String)&amp;quot;/&amp;gt;&lt;br /&gt;
        public static string[] Rfc822DateTimePatterns {&lt;br /&gt;
            get {&lt;br /&gt;
                if (formats.Length &amp;gt; 0) {&lt;br /&gt;
                    return formats;&lt;br /&gt;
                }&lt;br /&gt;
                else {&lt;br /&gt;
                    formats = new string[35];&lt;br /&gt;
&lt;br /&gt;
                    // two-digit day, four-digit year patterns&lt;br /&gt;
                    formats[0] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[1] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[2] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[3] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[4] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fff zzzz&amp;quot;;&lt;br /&gt;
                    formats[5] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ff zzzz&amp;quot;;&lt;br /&gt;
                    formats[6] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;f zzzz&amp;quot;;&lt;br /&gt;
                    formats[7] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss zzzz&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                    // two-digit day, two-digit year patterns&lt;br /&gt;
                    formats[8] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[9] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[10] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[11] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[12] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fff zzzz&amp;quot;;&lt;br /&gt;
                    formats[13] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ff zzzz&amp;quot;;&lt;br /&gt;
                    formats[14] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;f zzzz&amp;quot;;&lt;br /&gt;
                    formats[15] = &amp;quot;ddd&amp;#039;,&amp;#039; dd MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss zzzz&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                    // one-digit day, four-digit year patterns&lt;br /&gt;
                    formats[16] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[17] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[18] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[19] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[20] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fff zzzz&amp;quot;;&lt;br /&gt;
                    formats[21] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ff zzzz&amp;quot;;&lt;br /&gt;
                    formats[22] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;f zzzz&amp;quot;;&lt;br /&gt;
                    formats[23] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yyyy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss zzzz&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                    // two-digit day, two-digit year patterns&lt;br /&gt;
                    formats[24] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[25] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[26] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[27] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ffff zzzz&amp;quot;;&lt;br /&gt;
                    formats[28] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fff zzzz&amp;quot;;&lt;br /&gt;
                    formats[29] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;ff zzzz&amp;quot;;&lt;br /&gt;
                    formats[30] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;f zzzz&amp;quot;;&lt;br /&gt;
                    formats[31] = &amp;quot;ddd&amp;#039;,&amp;#039; d MMM yy HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss zzzz&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
                    // Fall back patterns&lt;br /&gt;
                    formats[32] = &amp;quot;yyyy&amp;#039;-&amp;#039;MM&amp;#039;-&amp;#039;dd&amp;#039;T&amp;#039;HH&amp;#039;:&amp;#039;mm&amp;#039;:&amp;#039;ss&amp;#039;.&amp;#039;fffffffK&amp;quot;; // RoundtripDateTimePattern&lt;br /&gt;
                    formats[33] = DateTimeFormatInfo.InvariantInfo.UniversalSortableDateTimePattern;&lt;br /&gt;
                    formats[34] = DateTimeFormatInfo.InvariantInfo.SortableDateTimePattern;&lt;br /&gt;
&lt;br /&gt;
                    return formats;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
&lt;br /&gt;
        public static void ArgumentNotNullOrEmptyString(string arg, string s) {&lt;br /&gt;
            if (arg == null || arg.Trim().Length == 0) throw new Exception(&amp;quot;Argument is null or is Empty string&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //============================================================&lt;br /&gt;
        //  Public Methods&lt;br /&gt;
        //============================================================&lt;br /&gt;
        #region Parse(string s)&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Converts the specified string representation of a date and time to its &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; equivalent.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;param name=&amp;quot;s&amp;quot;&amp;gt;A string containing a date and time to convert.&amp;lt;/param&amp;gt;&lt;br /&gt;
        /// &amp;lt;returns&amp;gt;&lt;br /&gt;
        /// A &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; equivalent to the date and time contained in &amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt;, &lt;br /&gt;
        /// expressed as &amp;lt;i&amp;gt;Coordinated Universal Time (UTC)&amp;lt;/i&amp;gt;.&lt;br /&gt;
        /// &amp;lt;/returns&amp;gt;&lt;br /&gt;
        /// &amp;lt;remarks&amp;gt;&lt;br /&gt;
        /// The string &amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; is parsed using formatting information in the &amp;lt;see cref=&amp;quot;DateTimeFormatInfo.InvariantInfo&amp;quot;/&amp;gt; object.&lt;br /&gt;
        /// &amp;lt;/remarks&amp;gt;&lt;br /&gt;
        /// &amp;lt;exception cref=&amp;quot;ArgumentNullException&amp;quot;&amp;gt;&amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; is a &amp;lt;b&amp;gt;null&amp;lt;/b&amp;gt; reference (Nothing in Visual Basic).&amp;lt;/exception&amp;gt;&lt;br /&gt;
        /// &amp;lt;exception cref=&amp;quot;ArgumentNullException&amp;quot;&amp;gt;&amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; is an empty string.&amp;lt;/exception&amp;gt;&lt;br /&gt;
        /// &amp;lt;exception cref=&amp;quot;FormatException&amp;quot;&amp;gt;&amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; does not contain a valid RFC 822 string representation of a date and time.&amp;lt;/exception&amp;gt;&lt;br /&gt;
        public static DateTime Parse(string s) {&lt;br /&gt;
            //------------------------------------------------------------&lt;br /&gt;
            //  Validate parameter&lt;br /&gt;
            //------------------------------------------------------------&lt;br /&gt;
            // Guard.&lt;br /&gt;
            ArgumentNotNullOrEmptyString(s, &amp;quot;s&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            DateTime result;&lt;br /&gt;
            if (Rfc822DateTime.TryParse(s, out result)) {&lt;br /&gt;
                return result;&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                throw new FormatException(String.Format(null, &amp;quot;{0} is not a valid RFC 822 string representation of a date and time.&amp;quot;, s));&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
&lt;br /&gt;
        #region ConvertZoneToLocalDifferential(string s)&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Converts the time zone component of an RFC 822 date and time string representation to its local differential (time zone offset).&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;param name=&amp;quot;s&amp;quot;&amp;gt;A string containing an RFC 822 date and time to convert.&amp;lt;/param&amp;gt;&lt;br /&gt;
        /// &amp;lt;returns&amp;gt;A date and time string that uses local differential to describe the time zone equivalent to the date and time contained in &amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt;.&amp;lt;/returns&amp;gt;&lt;br /&gt;
        /// &amp;lt;exception cref=&amp;quot;ArgumentNullException&amp;quot;&amp;gt;&amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; is a &amp;lt;b&amp;gt;null&amp;lt;/b&amp;gt; reference (Nothing in Visual Basic).&amp;lt;/exception&amp;gt;&lt;br /&gt;
        /// &amp;lt;exception cref=&amp;quot;ArgumentNullException&amp;quot;&amp;gt;&amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; is an empty string.&amp;lt;/exception&amp;gt;&lt;br /&gt;
        public static string ConvertZoneToLocalDifferential(string s) {&lt;br /&gt;
            string zoneRepresentedAsLocalDifferential = String.Empty;&lt;br /&gt;
&lt;br /&gt;
            //------------------------------------------------------------&lt;br /&gt;
            //  Validate parameter&lt;br /&gt;
            //------------------------------------------------------------&lt;br /&gt;
            //Guard.&lt;br /&gt;
            ArgumentNotNullOrEmptyString(s, &amp;quot;s&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            if (s.EndsWith(&amp;quot; UT&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; UT&amp;quot;) + 1)), &amp;quot;+00:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; GMT&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; GMT&amp;quot;) + 1)), &amp;quot;+00:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; EST&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; EST&amp;quot;) + 1)), &amp;quot;-05:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; EDT&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; EDT&amp;quot;) + 1)), &amp;quot;-04:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; CST&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; CST&amp;quot;) + 1)), &amp;quot;-06:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; CDT&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; CDT&amp;quot;) + 1)), &amp;quot;-05:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; MST&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; MST&amp;quot;) + 1)), &amp;quot;-07:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; MDT&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; MDT&amp;quot;) + 1)), &amp;quot;-06:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; PST&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; PST&amp;quot;) + 1)), &amp;quot;-08:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; PDT&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; PDT&amp;quot;) + 1)), &amp;quot;-07:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; Z&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; Z&amp;quot;) + 1)), &amp;quot;+00:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; A&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; A&amp;quot;) + 1)), &amp;quot;-01:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; M&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; M&amp;quot;) + 1)), &amp;quot;-12:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; N&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; N&amp;quot;) + 1)), &amp;quot;+01:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else if (s.EndsWith(&amp;quot; Y&amp;quot;, StringComparison.OrdinalIgnoreCase)) {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = String.Concat(s.Substring(0, (s.LastIndexOf(&amp;quot; Y&amp;quot;) + 1)), &amp;quot;+12:00&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                zoneRepresentedAsLocalDifferential = s;&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            return zoneRepresentedAsLocalDifferential;&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
&lt;br /&gt;
        #region ToString(DateTime utcDateTime)&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Converts the value of the specified &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; object to its equivalent string representation.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;param name=&amp;quot;utcDateTime&amp;quot;&amp;gt;The Coordinated Universal Time (UTC) &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; to convert.&amp;lt;/param&amp;gt;&lt;br /&gt;
        /// &amp;lt;returns&amp;gt;A RFC 822 string representation of the value of the &amp;lt;paramref name=&amp;quot;utcDateTime&amp;quot;/&amp;gt;.&amp;lt;/returns&amp;gt;&lt;br /&gt;
        /// &amp;lt;exception cref=&amp;quot;ArgumentException&amp;quot;&amp;gt;The specified &amp;lt;paramref name=&amp;quot;utcDateTime&amp;quot;/&amp;gt; object does not represent a &amp;lt;see cref=&amp;quot;DateTimeKind.Utc&amp;quot;&amp;gt;Coordinated Universal Time (UTC)&amp;lt;/see&amp;gt; value.&amp;lt;/exception&amp;gt;&lt;br /&gt;
        public static string ToString(DateTime utcDateTime) {&lt;br /&gt;
            if (utcDateTime.Kind != DateTimeKind.Utc) {&lt;br /&gt;
                throw new ArgumentException(&amp;quot;utcDateTime&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            return utcDateTime.ToString(Rfc822DateTime.Rfc822DateTimeFormat, DateTimeFormatInfo.InvariantInfo);&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
&lt;br /&gt;
        #region TryParse(string s, out DateTime result)&lt;br /&gt;
        /// &amp;lt;summary&amp;gt;&lt;br /&gt;
        /// Converts the specified string representation of a date and time to its &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; equivalent.&lt;br /&gt;
        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
        /// &amp;lt;param name=&amp;quot;s&amp;quot;&amp;gt;A string containing a date and time to convert.&amp;lt;/param&amp;gt;&lt;br /&gt;
        /// &amp;lt;param name=&amp;quot;result&amp;quot;&amp;gt;&lt;br /&gt;
        /// When this method returns, contains the &amp;lt;see cref=&amp;quot;DateTime&amp;quot;/&amp;gt; value equivalent to the date and time &lt;br /&gt;
        /// contained in &amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt;, expressed as &amp;lt;i&amp;gt;Coordinated Universal Time (UTC)&amp;lt;/i&amp;gt;, &lt;br /&gt;
        /// if the conversion succeeded, or &amp;lt;see cref=&amp;quot;DateTime.MinValue&amp;quot;&amp;gt;MinValue&amp;lt;/see&amp;gt; if the conversion failed. &lt;br /&gt;
        /// The conversion fails if the s parameter is a &amp;lt;b&amp;gt;null&amp;lt;/b&amp;gt; reference (Nothing in Visual Basic), &lt;br /&gt;
        /// or does not contain a valid string representation of a date and time. &lt;br /&gt;
        /// This parameter is passed uninitialized.&lt;br /&gt;
        /// &amp;lt;/param&amp;gt;&lt;br /&gt;
        /// &amp;lt;returns&amp;gt;&amp;lt;b&amp;gt;true&amp;lt;/b&amp;gt; if the &amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; parameter was converted successfully; otherwise, &amp;lt;b&amp;gt;false&amp;lt;/b&amp;gt;.&amp;lt;/returns&amp;gt;&lt;br /&gt;
        /// &amp;lt;remarks&amp;gt;&lt;br /&gt;
        /// The string &amp;lt;paramref name=&amp;quot;s&amp;quot;/&amp;gt; is parsed using formatting information in the &amp;lt;see cref=&amp;quot;DateTimeFormatInfo.InvariantInfo&amp;quot;/&amp;gt; object. &lt;br /&gt;
        /// &amp;lt;/remarks&amp;gt;&lt;br /&gt;
        public static bool TryParse(string s, out DateTime result) {&lt;br /&gt;
            //------------------------------------------------------------&lt;br /&gt;
            //  Attempt to convert string representation&lt;br /&gt;
            //------------------------------------------------------------&lt;br /&gt;
            bool wasConverted = false;&lt;br /&gt;
            result = DateTime.MinValue;&lt;br /&gt;
&lt;br /&gt;
            if (!String.IsNullOrEmpty(s)) {&lt;br /&gt;
                DateTime parseResult;&lt;br /&gt;
                if (DateTime.TryParseExact(Rfc822DateTime.ConvertZoneToLocalDifferential(s), Rfc822DateTime.Rfc822DateTimePatterns, DateTimeFormatInfo.InvariantInfo, DateTimeStyles.AdjustToUniversal, out parseResult)) {&lt;br /&gt;
                    result = DateTime.SpecifyKind(parseResult, DateTimeKind.Utc);&lt;br /&gt;
                    wasConverted = true;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            return wasConverted;&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ajastrem</name></author>
	</entry>
</feed>