如何在 .Net / C# 中将日期转换为 HTTP 格式的日期

Posted

技术标签:

【中文标题】如何在 .Net / C# 中将日期转换为 HTTP 格式的日期【英文标题】:How do I convert a date to a HTTP-formatted date in .Net / C# 【发布时间】:2010-09-05 23:59:12 【问题描述】:

如何将 .Net DateTime 转换为有效的 HTTP 格式日期字符串?

【问题讨论】:

【参考方案1】:

可以使用 .Net 中的“r”格式字符串将日期转换为 HTTP 有效日期 (RFC 1123)。 HTTP 日期需要是 GMT / 不偏移 - 这可以使用 ToUniversalTime() 方法来完成。

所以,以 C# 为例:

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

现在,生成 HttpDate = "Sat, 16 Aug 2008 10:38:39 GMT"

有关 .Net 标准日期和时间格式字符串的列表,请参阅 Standard Date and Time Format Strings。

请参阅Protocol Parameters 了解 HTTP 日期规范,以及有关 HTTP 日期的其他有效(但已过时)RFC 类型的背景。

【讨论】:

我在没有添加 .ToUniversalTime() 的情况下尝试了这个,只是想评论它必要的。只需使用.ToString("r")格式化指定GMT 的日期时间,但它不会真正采用UTC。 @JYelton 这通常是不正确的。仅当您不使用 UTC 日期时才需要(如果您不使用,则应该有一个很好的理由)。已经是 UTC 的日期不需要.toUniversalTime()

以上是关于如何在 .Net / C# 中将日期转换为 HTTP 格式的日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中将字节 [] 转换为日期时间?

如何在c#中将字符串转换为日期[重复]

在 C# ASP.net 中将文本框内容转换为 DateTime 格式时出错

如何在 C# 中将日期字符串转换为 DateTime 对象? [复制]

如何在 C# 中将字符串转换为 DateTime?

在 Dart (Flutter) 中将日期时间转换为 C# timetick [关闭]