gpt4 book ai didi

c# - 将日期从 SQL Server 转换为 C#,然后再转换为 javascript 在美国和伦敦网络服务器上给出不同的结果

转载 作者:行者123 更新时间:2023-11-30 18:52:02 24 4
gpt4 key购买 nike

我有一个 asp.net mvc 日历应用程序(使用 jquery ui datepicker),我遇到了一个奇怪的情况,当我在美国网络服务器上测试时,我看到了某个日期,当我在伦敦网络服务器上测试时,我看到了不同的日期(之前的日期)

详情如下:

我将日期存储在 sql server 中:

 2010-09-16 00:00:00.000

然后我将其加载到 C# DateTime 对象中。

我需要将其作为 json 对象的一部分传递给我的客户端 javascript,因此有人建议我采用以下解决方案:

jsonobject.Date = UnixTicks(a.Date),

UnixTicks 在哪里:

private static double UnixTicks(DateTime dt)
{
DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = dt.ToUniversalTime();
TimeSpan ts = new TimeSpan(d2.Ticks - d1.Ticks);
return ts.TotalMilliseconds;
}

然后我在客户端使用以下代码将其转换为 javascript 日期:

var d = new Date(jsonobject.Date);

有谁知道为什么给定美国服务器或伦敦服务器我会得到不同的日期。一开始我以为是

 DateTime d2 = dt.ToUniversalTime();

但我将其更改为:

 DateTime d2 = dt;

仍然看到同样的问题。 (在伦敦网络服务器上,日期会比美国网络服务器早 1 天显示)

有什么建议吗?

最佳答案

如果您将本地时间而不是 UTC 存储在数据库中,那么在转换回本地时间时您可能会得到不同的日期。在将日期提交到数据库之前,确保将日期转换为 UTC 。如果您希望每个人无论身在何处都始终看到相同的日期,请始终返回 UTC 日期 - 不要转换回本地时间。

关于c# - 将日期从 SQL Server 转换为 C#,然后再转换为 javascript 在美国和伦敦网络服务器上给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3586006/

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