Voici un petit code tout simple qui permet d' obtenir le fameux format de date RFC822 utilisé dans les flux RSS.
Note importante : ce code corrige l' erreur courante qui consiste à avoir les noms des jours et mois en français (erreur que j'avais fait dans mon post relatif à l' écriture de flux RSS avec Linq.
Vb :Private Shared Function Date2RFC822(ByVal date2Convert As DateTime) As String Dim offset As Int32 = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours Dim sb As New System.Text.StringBuilder() sb.Append(date2Convert.ToString( _ "ddd, dd MMM yyyy HH:mm:ss ", _ New System.Globalization.CultureInfo("en-US"))) If (offset < 0) Then sb.AppendFormat("-{0:00}00", offset * -1) ElseIf (offset = 0) Then sb.Append("GMT") Else sb.AppendFormat("+{0:00}00", offset) End If Return sb.ToString() End FunctionC#:
private static String Date2RFC822(DateTime date2Convert) { Int32 offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours; StringBuilder sb = new System.Text.StringBuilder(); sb.Append(date2Convert.ToString( "ddd, dd MMM yyyy HH:mm:ss ", new System.Globalization.CultureInfo("en-US"))); if (offset < 0) { sb.AppendFormat("-{0:00}00", offset * -1); } else if (offset == 0) { sb.Append("GMT"); } else { sb.AppendFormat("+{0:00}00", offset); } return sb.ToString(); }