gpt4 book ai didi

c# - 为什么我的日期值在 web api 函数中解析不正确?

转载 作者:行者123 更新时间:2023-11-30 20:36:42 28 4
gpt4 key购买 nike

我从客户端向 web api 函数发送这个字符串:

date = "Sat, 27 Oct 2012 18:10:00 GMT"

这个 web api 函数获取字符串并解析它:

    public HttpResponseMessage Get(DateTime date)
{
//some logic
}

在 web api 函数的 Debug模式下,我在解析后检查值,我看到了这个:

{10/27/2012 晚上 8:10:00}

我应该得到的结果是:

{10/27/2012 18:10:00}

知道为什么解析错误吗?

最佳答案

它与发送的 UTC 时间和转换为本地时间的日期有关。为避免此错误和其他错误,您不应以任何其他格式从您的客户端发送日期时间 ISO 8601 .这确保您的客户端代码可以在任何语言环境中重复使用。当涉及到您几乎无法控制用户安装的语言环境的浏览器和网站时,尤其如此。如果他们的浏览器安装了西类牙语 es-MX,则日期格式可能是天然后是月然后是年,如果作为正常日期时间发送,将无法正确解析。

ISO8601 在发送到服务器时也会保留时间偏移量。

从 JavaScript 发送日期时,日期时间对象包含一个名为 .toISOString() 的方法.在创建要发送到服务器的字符串时调用它。

然后在网络服务器上,您可以使用 DateTime,后者将具有 .Kind = Utc,或者您可以使用 DateTimeOffset。无论哪种方式,如果您将其作为符合 ISO8601 的字符串发送,日期/时间都将正确实现。

这也是answered before here .

回顾

  • 始终使用 ISO-8601 来往于客户端(到客户端通常由 Web API 中的 JSON 格式化程序自动处理)。
  • 始终在您的模型中直接使用 DateTimeOffsetDateTime 实例。

关于c# - 为什么我的日期值在 web api 函数中解析不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36701369/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com