56 votes

Comment convertir une date en une date au format HTTP en .Net / C# ?

Comment convertir un DateTime .Net en une chaîne de date valide au format HTTP ?

91voto

Gareth Jenkins Points 1480

Les dates peuvent être converties en dates HTTP valides (RFC 1123) en utilisant la chaîne de format "r" dans .Net. Les dates HTTP doivent être GMT / non décalées - ceci peut être fait en utilisant la méthode ToUniversalTime().

Ainsi, en C# par exemple :

string HttpDate = SomeDate.ToUniversalTime().ToString("r");

Actuellement, cela donne HttpDate = "Sat, 16 Aug 2008 10:38:39 GMT".

Voir Chaînes de format de date et d'heure standard pour obtenir une liste des chaînes de format de date et d'heure standard de .Net.

Voir Paramètres du protocole pour la spécification de la date HTTP, et le contexte d'autres types de RFC valides (mais datés) pour les dates HTTP.

9 votes

J'ai essayé sans ajouter .ToUniversalTime() et je voulais juste dire qu'il es nécessaire. Il suffit d'utiliser .ToString("r") se format la date avec GMT spécifié, mais il ne sera pas vraiment en UTC.

0 votes

@JYelton ce n'est pas correct en général. Ce n'est nécessaire que si vous ne travaillez pas avec des dates UTC (il devrait y avoir une bonne résonance si vous ne le faites pas). Une date qui est déjà UTC n'a pas besoin de .toUniversalTime() .

2voto

jeffreypriebe Points 1070

Pour obtenir la date commune formatée pour le web de l'ISO 8601 : comme dans : 2008-08-16T10:38:39Z. C'est :

SomeDate.ToString("s");

ou, comme ci-dessus pour UTC :

SomeDate.ToUniversalTime().ToString("s");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X