c# - Web 应用程序时区问题

标签 c# asp.net timezone

我们在中西部(东部标准时间)的服务器上启动并运行了 ASP.Net 2.0 Web 应用程序。此时此刻,我们所有的客户都与服务器处于同一时区。我们将在亚利桑那州(山地标准时间)将另一台服务器上线。

我们通过 C# 代码隐藏 DateTime.UtcNow 将所有时间存储在 SQL 2005 数据库中。

在测试期间,我们遇到了一些时区转换问题。 我们的问题是,在网络浏览器中,我们的时间显示的是山区标准时间,而不是我们正在测试的时区,该时区是东部标准时间。

当我们输入新信息时,它会以 UTC 格式存储在数据库中,但当我们在浏览器中查看该信息时,它显示的是山区标准时间。 下面是从数据库中获取 UTC 值并将其显示在浏览器中的代码。

lblUpdatedDate.Text = Convert.ToDateTime(dr["UpdatedDate"]).ToLocalTime().ToString();

以上代码返回服务器所在的山区标准时间,而不是浏览器运行所在的东部标准时间。我们如何获得显示用户所在位置的时间?

最佳答案

我遇到了同样的问题。我们将我们的应用程序卖给了与 Web 服务器处于不同时区的用户。我们没有以 UTC 格式存储任何时间信息,但它实际上工作正常。服务器时区显示的时间正好晚了 3 小时。我们所要做的就是添加一个时区下拉列表,这样他们就可以为整个站点选择他们的时区(因为应用程序的唯一用户将在他们的时区)。我们保存了这个设置,然后插入了一个函数来获取所有日期时间显示,并使用 TimeZoneInfo 命名空间从一个时区转换为另一个时区。效果很好。

关于c# - Web 应用程序时区问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/240090/

相关文章:

c# - 如何在 Windows 时区和 IANA 时区之间进行转换?

c# - 将 FFmpeg 捕获的直播重定向到 Azure Functions 中的 Azure Blob 存储

c# - 是否可以将强类型数组绑定(bind)为 ASP.NET Core 中的配置模型?

mysql - 将自定义行添加到 GridView 表

javascript - 来自 javascript 的 EWS GetUserAvailabilityRequest - 如何设置时区信息

postgresql - Postgres now() 返回 +03 时区但显示时区返回 GMT

c# - 使用 Windows 函数制作窗口模态

c# - Linux 下 Mono 的应用程序设置

asp.net - shutdownReason : ConfigurationChange, 但只有静态文件发生变化?

asp.net - 学习MVC 5,这几天用什么认证框架?