我正在使用用 JavaScript 编写的客户端应用程序,该应用程序将数据发送到 ASP.NET Web api 端点(服务器)。
我要求用户选择日期和时间。我使用 .toUTCString() 将该日期转换为 UTC 日期时间作为
string
。
我将此信息发送到 .NET 应用程序,该应用程序期望该值是 DateTime
类型。
我发送的值 = 2015 年 12 月 31 日星期四 03:30:00 GMT
我在 .net 端收到的值 = {12/30/2015 10:30:00 PM}
我了解该值正在转换。我的问题是:如何在服务器端将日期转换为 UTC。我的假设是 DateTime
对象没有附加隐式的时区偏移
。如果我在格林威治运行代码时运行 ToUniversalTime() ,那么我会得到相同的时间。如果我住在温哥华时这样做,那么我会得到 -8 小时的偏移 DateTime 对象。
所以我是一个来自不同位置的客户端,我使用.ToUniversalTime()
将该时间转换为UTC,转换将是错误的。我该如何克服这个问题?
最佳答案
如果用户选择日期和时间,我认为它不是当前的并且是相对于用户的。在这种情况下,是的,如果您想进一步分析数据或将其呈现给另一个时区的其他用户,您可能需要转换为 UTC。如果您不将其转换为 UTC,您将收到相对日期/时间,并且需要另一个指示时区的数据。但即使在这种情况下,除了安全措施之外,没有其他办法可以在服务器上计算可以在客户端轻松计算的内容。
关于javascript - 从 JavaScript 客户端发送到 .NET 的字符串格式的 UTC 日期正在转换为 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34535828/