c# - 为什么 JSON 中日期时间的行为在不同系统(win xp、server 2003)上不同?

标签 c# asp.net ajax web-services json

我的 Web 应用程序分为 WebGui 和 WebService。 WebService 负责业务逻辑和数据库处理。 从浏览器中的 Javascript,我根据浏览器输入的日期和时间请求数据。此请求转到 WebGui 中的 .asmx Url,并在此函数内调用 Web 服务。

在我的开发系统 (windows xp) 上我得到了正确的数据,但是当我在测试系统上安装它时我必须添加本地时区差异才能得到正确的数据。

例如,我想要日期和时间“21.07.2008 14:27:30”的数据,我必须发送“21.07.2008 16:27:30”。

为什么两个系统上的行为不同,我应该怎么做才能在两个系统上获得相同的行为?

  • Web GUI 在 asp.net 2.0 c# 中
  • Web 服务在 asp.net 1.1 c# 中

更新

这不是解释不同格式的日期的问题,因为日期和时间在 JSON 协议(protocol)中作为“/Date(1221738803000)/”发送。这是一个解释/忘记时区的问题。

最佳答案

我怀疑这与 .NET 2.0 中引入的 DateTime.Kind 属性有关。默认情况下,它设置为 DateTimeKind.Unspecified,大部分时间处理方式与 DateTimeKind.Local 相同,因此当日期被序列化时,它将被转换为 UTC。 在将其传递给 Web 服务调用之前,您可以尝试使用 DateTime.SpecifyKind(...) 将 Kind 设置为 DateTimeKind.Utc。

关于c# - 为什么 JSON 中日期时间的行为在不同系统(win xp、server 2003)上不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/92515/

相关文章:

c# - IntPtr 到 string.Format 中的十六进制字符串

c# - 为什么要用 using 语句初始化对话框?

c# - XSLT 转换 : how to preserve the element's attributes during transform?

c# - 无效化为自己的位图

使用 MySQL LIMIT 的 ASP.NET GridView 分页

javascript - 如何在数据添加到数据库后立即将数据发送到网页

javascript - Highchart 堆叠条形图无法通过 javascript 工作

asp.net - Iframe 和页面加载问题

asp.net - Button.click事件和button.command事件有什么区别?

javascript - React 组件被调用两次(AJAX 调用异步)