2010-02-13 71 views
2

我該如何才能讓各個時區的客戶端在他們的Web瀏覽器中選擇日期和時間並將其保存爲utc時間到我的sql數據庫中?此日期是未來的日期,因此無論日期是否在夏令時,都可能發生變化,因此我需要對此進行說明。將客戶端時間轉換爲utc時間以保存到sql

該網站是一個asp.net c#網站。

+0

您正在使用哪個數據庫供應商?有幾家供應商提供了'TIMESTAMP WITH TIME ZONE'數據類型,它應該解決這類問題。 – incarnate 2010-02-14 09:16:22

回答

2

在您的HTML中有一個隱藏字段,並通過javascript填充當前時間。由於它是由用戶的瀏覽器完成的,它將在當地時間。在服務器端,將其與服務器的本地時間進行比較以查找時區偏移量。

+0

也許你可以使用DateTime類的ToUniversalTime方法來進行轉換。 http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime(VS.71).aspx – DaveB 2010-02-14 05:23:52

+0

這將適用於當前時間,但如果他們在未來的日期保存日期由於夏令時可能會有不同的偏移量。我無法弄清楚我將如何在未來的日子裏拯救未來的日子 – Jon 2010-02-14 15:46:30

1

我們最終要做的事情是添加客戶端時區的存儲作爲其用戶配置的一部分。我們確切地知道這樣,他們在哪裏,你可以使用內置的框架3.5的轉換功能來執行本地和UTC之間的所有轉換(這是考慮到夏令)

看到這裏http://msdn.microsoft.com/en-us/library/bb382770.aspx

我假設您已驗證用戶身份,但如果您將用戶選擇的日期存儲在數據庫中,這是一個公平的選擇。

0

你不能在客戶端上將日期/時間轉換爲UTC嗎?