【发布时间】:2015-10-09 20:02:43
【问题描述】:
我正在 Web 服务中实现条件请求。后端可以轻松检索实体的最后修改日期,因此我发送 Last-Modified 并返回 If-Modified-Since。 RFC for HTTP Dates 指定的格式与"R" format specifier in .NET 相同。
问题是DateTime.ToString("R") 正确格式化日期,但将"R" 传递给ParseExact 不会读回时区(有一个“往返”说明符"O",但它不在我需要的格式)。这是 LinqPad 中的一个示例:
DateTime lastModified = new DateTime(2015, 10, 01, 00, 00, 00, DateTimeKind.Utc);
string lastModifiedField = lastModified.ToString("R"); // Thu, 01 Oct 2015 00:00:00 GMT
DateTime ifModifiedSince = DateTime.ParseExact(
lastModifiedField, "R", CultureInfo.InvariantCulture);
ifModifiedSince.Kind.Dump(); // Unspecified
我当然可以在解析后的DateTime 上使用方法将其强制转换为我想要的格式,但是如何让框架使用已经存在的数据?
【问题讨论】:
标签: c# datetime datetimeoffset