2009-01-27 43 views
2

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

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

我的问题是,

  1. 是否有UTC的时区的下拉列表中,像第一个链接我发现格林威治标准时间有一个?
  2. 我真的应该使用UTC还是GMT?

回答

1

GMT(格林尼治标准时间)与UTC(世界协调时间)相同。这不是一个/或选择 - 使用它:)

+0

GMT实际上并不相同。他们有不同的起源。请参阅我在下面发布的链接。 – 2009-01-27 22:52:00

3

.NET 3.5提供了TimeZoneInfo类,它应该使它相对简单,以填充具有时区的下拉菜单。格林威治标准时间早于UTC和UTC于1972年1月1日正式启用。有关更多信息,请参阅this link。就今天的目的而言,两者虽然有着不同的历史渊源,但它们几乎是同义词。使用任何外观和功能更适合您的目的。

0

在任何可能的地方使用本地化设置,功能和功能。

0

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

2

我不确定这是你打算问的问题,但是在你的数据库中,你应该总是用UTC/GMT存储时间戳(正如其他人指出的那样,它们本质上是一样的)。对于您的Web应用程序的每个用户,请存储时区首选项。

然后,无论何时向用户显示某物的时间戳,都将数据库中的UTC时间转换为用户的时区。

0

UTC和GMT之间的区别可能太好了,在您的代码中打扰。但是,在内部使用零时区偏移来保存和处理时间可能是一个好主意,并将其作为演示文稿处理。

也可以使用JavaScript来确定用户的可能时区:检查某些合理接近至少(即使1月1日和7月1日做出合适的近似)的一对对象的时区偏移量以获得粗略的时区标识。随意使用这些信息来确定一个默认时区,但确实允许用户更改它:JavaScript没有提供足够的细节来选择具有国家和地区历史转换的确切时区,并且它可能不会被无论如何用户。

相关问题