【问题标题】:showing date and time to local date and time from UTC Date and time从 UTC 日期和时间显示日期和时间到本地日期和时间
【发布时间】:2015-11-28 16:27:18
【问题描述】:

我有一个人们发布各种问题的页面。我在不是 UTC 日期和时间的 sql server 中保存日期和时间。我们的网络服务器在美国电脑上运行。所以告诉我如何保存日期和时间,这样当人们看到他们发布的问题时,他们就会按照当地时间看到发布的日期和时间。

我有一个计划,我可以在 sql server 中以 UTC 格式保存日期和时间,并以 UTC 格式获取该日期和时间,并通过 c# 将该 UTC 日期和时间转换为本地日期和时间,但问题是我们的服务器端逻辑将在美国电脑上运行。所以如果我转换为本地日期和时间,那么它将是美国本地日期和时间。

所以告诉我我应该在 mvc 服务器端使用什么逻辑,因为用户将在哪里看到我的页面,他们将根据本地时间看到日期和时间。

我无法使用用户时区,因为用户时区相关信息永远不会从客户端 PC 传递到服务器端。

http://forums.asp.net、stackoverflow.com 等热门论坛主要是如何做到这一点的?

论坛从服务器端而不是客户端呈现日期和时间。那么他们使用什么逻辑。

请详细指导我完成这项任务。谢谢

【问题讨论】:

    标签: asp.net-mvc datetime


    【解决方案1】:

    在 SQL 服务器中使用 UTC 存储所有日期,并在客户端上以 UTC 显示它们。如果您需要将它们转换并显示为本地时区,则需要为此使用 javascript 并将来自服务器的 UTC 日期转换为本地日期时间。这是一个例子:https://stackoverflow.com/a/6525602/29407

    http://forums.asp.net、stackoverflow.com 等热门论坛主要是如何做到这一点的?

    我不确定其他网站,但在 StackOverflow 上,UI 中显示的所有日期都是 UTC。

    【讨论】:

    • 你说display them in UTC on the client 如果我在客户端以UTC 格式显示日期和时间,那么可能会出现一些混乱。假设我的网络服务器在美国电脑上,一位来自印度的用户在白天发布了一个问题,但同时美国有夜晚。所以可能会有日期差异。假设日期是 2015 年 5 月 5 日,那么美国日期可能是 2015 年 4 月 5 日。那么页面中会显示哪个 UTC 日期?
    • if i show the date and time in UTC format in the client then some confusion may occur. - 不,这正是 UTC 的重点 - 避免任何混淆。只要您将日期以 UTC 格式存储在数据库中并将其以 UTC 格式显示给客户端,您的服务器在哪里并不重要。但我再次重复我在回答中已经说过的话:如果您需要显示与客户端时区相关的日期,那么只需使用 javascript 将来自服务器的 UTC 日期转换为本地日期时间。
    【解决方案2】:

    让服务器向下发送 UTC,并让客户端将其转换为本地时间。这是另一个线程的具体解决方案:https://stackoverflow.com/a/53961671/534514

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 2021-05-14
      • 2023-03-21
      • 2011-05-06
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多