2009-01-27 81 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沒有提供足夠的細節來選擇具有國家和地區歷史轉換的確切時區,並且它可能不會被無論如何用戶。

相關問題