//End of address parsing. //Date parsing conformant to RFC2822 and accepting RFC822 dates. public static System.DateTime ParseAsUniversalDateTime(string input) { input = Parser.ReplaceTimeZone(input); input = Parser.Clean(input); input = System.Text.RegularExpressions.Regex.Replace(input,@" +"," "); input = System.Text.RegularExpressions.Regex.Replace(input,@"( +: +)|(: +)|( +:)",":"); if(input.IndexOf(",")!=-1) { input = input.Replace(input.Split(',')[0]+", ",""); } string[] parts = input.Split(' '); int year = System.Convert.ToInt32(parts[2]); if(year<100) { if(year>49) year += 1900; else year += 2000; } int month = Parser.GetMonth(parts[1]); int day = System.Convert.ToInt32(parts[0]); string[] dateParts = parts[3].Split(':'); int hour = System.Convert.ToInt32(dateParts[0]); int minute = System.Convert.ToInt32(dateParts[1]); int second = 0; if(dateParts.Length>2) second = System.Convert.ToInt32(dateParts[2]); int offset_hours = System.Convert.ToInt32(parts[4].Substring(0,3)); int offset_minutes = System.Convert.ToInt32(parts[4].Substring(3,2)); System.DateTime date = new System.DateTime(year,month,day,hour,minute,second); date = date.AddHours(-offset_hours); date = date.AddMinutes(-offset_minutes); return date; }