2

我想在我的 Web 应用程序中实现时区。我研究并看到大多数网络应用程序使用 GMT 下拉菜单,这里是该下拉菜单的链接http://www.attackwork.com/BlogEntry/6/Time-Zone-Dropdown-Select-List/Default.aspx

然后我看到这篇文章建议 UTC 是实现时区的方法。http://aspnet.4guysfromrolla.com/articles/081507-1.aspx 基本上是说不要使用DateTime.Now而是使用DateTime.UtcNow

我的问题是,

  1. 是否有 UTC 时区的下拉列表,就像我在 GMT 上显示的第一个链接一样?
  2. 我真的应该使用 UTC 还是 GMT?
4

6 回答 6

3

.NET 3.5 提供了TimeZoneInfo类,它可以让您相对简单地使用时区填充下拉列表。GMT 早于 UTC,而 UTC 于 1972 年 1 月 1 日正式成立。有关更多信息,请参阅此链接。就今天而言,这两者几乎是同义词,尽管它们具有不同的历史渊源。为您的目的使用更好的外观和功能。

于 2009-01-27T22:51:27.060 回答
2

我不确定这是否是您要问的,但是在您的数据库中,您应该始终将时间戳存储在 UTC/GMT 中(正如其他人所指出的,它们的含义基本相同)。对于您的 Web 应用程序的每个用户,存储时区首选项。

然后,每当您向用户显示某事的时间戳时,将数据库中的 UTC 时间转换为用户的时区。

于 2009-01-27T22:58:15.440 回答
1

GMT(格林威治标准时间)与 UTC(世界协调时间)相同。这不是一个非此即彼的选择 - 使用它:)

于 2009-01-27T22:43:29.837 回答
0

尽可能使用本地化设置、功能和特性。

于 2009-01-27T22:53:36.337 回答
0

如果您不是针对 SQL Server 2008 运行或不想将时区管理抽象到数据库中,则应将所有时间存储为 UTC/GMT 并根据用户的配置文件设置应用时区差异,以便来自各地的用户世界可以看到他们当地时间的事件的时间戳。

于 2009-01-27T22:53:48.770 回答
0

UTC 和 GMT 之间的区别可能太细了,无法在您的代码中打扰。但是,始终以零时区偏移在内部保存和处理时间可能是一个好主意,并将其作为演示问题进行处理。

也可以使用 JavaScript 来确定用户可能的时区:检查一些Date合理地接近至点的对象对的时区偏移量(即使是 1 月 1 日和 7 月 1 日也是一个合适的近似值)以获得粗略的时区标识。随意使用此信息来确定默认时区,但请允许用户更改它:JavaScript 没有提供足够的详细信息来选择具有国家和地区历史变化的确切时区,并且可能无法由反正用户。

于 2009-01-27T23:00:18.057 回答