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 Function
C#:
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();
}
