如何在 .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# ASP.net 中将文本框内容转换为 DateTime 格式时出错