/// <summary> /// Parses the string. Dumps results to console window /// </summary> /// <param name="s"></param> static void ParseRfc822(string s) { PFSRfc822DateTimeConverter converter = new PFSRfc822DateTimeConverter(); Console.WriteLine(FixWidth("INPUT RFC822:") + s); // try and parse. if (converter.TryParse(s, out DateTime tmpDt)) { Console.WriteLine(FixWidth("RESULT RFC822:") + converter.ResultRfc822); Console.WriteLine(FixWidth("RESULT TIMEZONE OFFSET:") + converter.UtcOffset.ToString("c")); Console.WriteLine(FixWidth("RESULT UTC DATETIME:") + converter.ResultUtc.ToString("yyyy-MM-dd HH:mm:ss zzz")); Console.WriteLine(FixWidth("RESULT LOCAL DATETIME:") + tmpDt.ToString("yyyy-MM-dd HH:mm:ss zzz")); Console.WriteLine(FixWidth("RESULT DST IN USE:") + (converter.TimeZoneUsesDaylightSavingsTime ? "YES" : "NO")); Console.WriteLine(FixWidth("RESULT MESSAGE:") + "VALID FORMAT"); WriteDateParts(converter); } // error encountered, bail else { Console.WriteLine(FixWidth("RESULT MESSAGE:") + "INVALID FORMAT"); WriteDateParts(converter); } }
/// <summary> /// Common routine just to dump the dateparts array /// </summary> /// <param name="conv"></param> private static void WriteDateParts(PFSRfc822DateTimeConverter conv) { Console.WriteLine(""); for (int i = 0; i < conv.DATEPART_KEYS.Count; i++) { string datePartValue = conv.GetDatePartValue(conv.DATEPART_KEYS[i]); Console.WriteLine(FixWidth("DATEPART " + conv.DATEPART_KEYS[i] + ":") + datePartValue); } }