如何防止 ASP.NET MVC 将日期从 UTC 转换为本地日期?

发布于 2024-12-11 05:46:37 字数 288 浏览 0 评论 0原文

我使用 UTC 将日期存储在数据库中。客户端(javascript)获取日期并将其转换为当地时间。在本地主机上运行时效果很好(意味着 Web 服务器时区与客户端时区相同)。但是,当我部署到 Azure(其中 Web 服务器时区为 UTC)时,我取回已调整为客户端时区的日期,导致客户端显示错误的日期时间值。

我假设 ASP.NET MVC 执行此转换。这是真的吗?如果是这样,我怎样才能阻止它,并强制日期不加改变地传递下去?

我尝试设置传递给 DateTimeKind.UnSpecified 的日期时间对象的类型,但这不起作用。

I store dates in the database using UTC. The client (javascript) gets the date and converts it into local time. This works fine when running on localhost (meaning web server time zone is same as client time zone). However, when I deploy to Azure, where the web server time zone is UTC, I get back the date already adjusted to the client's time zone, causing the client to show the wrong date time value.

I am assuming that ASP.NET MVC does this conversion. Is that true? If so, how can I prevent it, and force the dates to be passed down unaltered?

I have tried to set the kind of the datetime object being passed down to DateTimeKind.UnSpecified but that does not work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑色毁心梦 2024-12-18 05:46:37

如果您将该值存储为 UTC 并将其发送为 UTC,则 Web 服务器的时钟不会发挥作用。您需要检查如何从数据库设置该日期,如果这是好的,然后检查 JavaScript 中发生的转换。

另外,如果您正在执行任何 .ToString() 或使用 HtmlHelpers,它们也可以即时转换。

If you store the value as UTC and send it down as UTC, the web server's clock doesn't come into play. You need to check your how that date is getting set from the db, if that is good, then check the conversion happening in JavaScript.

Also, if you are doing any .ToString() or using HtmlHelpers, they can also convert on the fly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文