从JavaScript客户端发送到.NET的字符串格式的UTC日期正在转换为DateTime

本文关键字:日期 UTC DateTime 转换 格式 字符串 客户端 JavaScript NET | 更新日期: 2023-09-27 18:28:28

我正在使用一个用JavaScript编写的客户端应用程序,该应用程序将数据发送到ASP.NET web api端点(服务器)。

我要求用户选择一个日期&时间我使用将该日期转换为UTC日期时间stringtoUTCString().

我将此信息发送到.NET应用程序,该应用程序希望该值为DateTime类型。

我发送的值=Thu, 31 Dec 2015 03:30:00 GMT

我在.net端收到的值={12/30/2015 10:30:00 PM}

我知道价值正在转换。我的问题是:如何在服务器端将日期转换为UTC。我的假设是DateTime对象上没有隐含的timezone offset。如果我在格林威治运行代码时在它上运行ToUniversalTime(),那么我会得到相同的时间。如果我在温哥华生活时这样做,那么我会得到一个偏移的DateTime对象-8小时。

所以我是一个来自不同位置的客户,我使用.ToUniversalTime()将该时间转换为UTC,转换将是错误的。我该如何克服这个问题?

从JavaScript客户端发送到.NET的字符串格式的UTC日期正在转换为DateTime

如果用户选择日期和时间,我认为它不是当前的,并且是相对于用户的。在这种情况下,是的,如果您想进一步分析数据或将其呈现给另一时区的另一个用户,则需要转换为UTC。如果您不将其转换为UTC,您将收到相对日期/时间,并且需要另一个指示时区的数据。但即使在这种情况下,除了在服务器上计算可以在客户端上轻松计算的安全措施之外,也没有其他意义。