Skip to main content

Converts a regular DateTime to a RFC822 date string in C#.

/// <summary>
/// Converts a regular DateTime to a RFC822 date string.
/// </summary>
/// <param name="date">DateTime object to convert.</param>
/// <returns>The specified date formatted as a RFC822 date string.</returns>
public static string ToRFC822Date(this DateTime date)
{
    int offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
    string timeZone = "+" + offset.ToString().PadLeft(2, '0');

    if (offset < 0)
    {
        int i = offset * -1;
        timeZone = "-" + i.ToString().PadLeft(2, '0');
    }

    return date.ToString("ddd, dd MMM yyyy HH:mm:ss " + timeZone.PadRight(5, '0'));
}