是否有可以在URL上传递的标准日期/时间格式?

Dan*_*fer 20 .net url datetime

查看DateTimeFormatInfo文档,看起来所有标准格式都包含冒号,这使得它们在网址上传递不愉快/不可能.

是否有一种标准化格式用于在URL上传递日期时间,最好是可以由.NET自动解析的格式?


更新:稍微澄清一下

这些数据的使用者将是某种类型的Web服务 - 它可以是在查询字符串中具有此值的简单HTTP GET,也可以是具有url中某个值的REST的REST.

ISO 8601管理日期/时间格式,根据维基文章,使用ToString("yyyyMMddTHHmmssZ")至少应符合标准.不幸的是,它没有被ASP.NET MVC自动拾取(还没有尝试过其他任何东西).对于它的价值,ASP.NET MVC也不会自动将刻度转换为日期时间,这让我感到惊讶.

Jef*_*dge 8

我会将所有内容整合到一个答案中:

你可以这样做:

        string urlSafeDateString = HttpServerUtility.UrlTokenEncode(date.ToUniversalTime().ToString(System.Globalization.CultureInfo.InvariantCulture).ToCharArray());

        DateTime date = DateTime.Parse(new string(HttpServerUtility.UrlTokenDecode(urlSafeDateString)), System.Globalization.CultureInfo.InvariantCulture).ToLocalTime();
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

        string urlSafeDateString = date.ToUniversalTime().ToString("yyyyMMddTHHmmss", System.Globalization.CultureInfo.InvariantCulture);

        DateTime date = DateTime.ParseExact(urlSafeDateString, "yyyyMMddTHHmmss", System.Globalization.CultureInfo.InvariantCulture).ToLocalTime();
Run Code Online (Sandbox Code Playgroud)