2010-06-08 87 views
0

我有日期時間字段我有日期時間字段到數據庫中存儲的通用時間,即UTC時間。我想在客戶端時區和格式中顯示客戶端機器的日期時間。如何將服務器日期時間轉換爲網站的客戶端機器日期時間

示例:來自US的某人更新了站點的數據庫字段,並將其存儲爲UTC格式。來自印度的人去看看這個網站。我想要的是來自印度的人看到IST或澳大利亞的時間在他的本地機器時間格式中看到的不是服務器時間格式和區域。

最好的辦法是做什麼?如果有,請粘貼代碼片段。

Thanx提前!

+0

最好的方法是使用語言日期/時間函數。我們在談什麼語言? (: – hudolejev 2010-06-08 09:41:25

+0

但如何發送客戶端時區到服務器?我正在使用C# – Shailendra 2010-06-08 09:53:01

+1

通常你不應該顯示時間與正確的時區看起來像一個客戶端應用程序的任務在服務器端,你應該保持所有時間值如果可能,以UTC表示。 – hudolejev 2010-06-08 10:04:18

回答

1

在Java中的一個例子,如果你很高興與

String utcTimePattern = "yyyy-MM-dd HH:mm:ss Z"; // Defined in database or whatever 
String timeString = "2010-09-08 12:51:14 +0000"; // Event time kept in database 

SimpleDateFormat timeFormat = new SimpleDateFormat(utcTimePattern); 

// Parse server time and get Date object with default settings 
Date localTime = timeFormat.parse(timeString); 

System.out.println(localTime); 

的想法是,你從服務器獲取UTC時間字符串,並使用默認時區和日期格式格式化的客戶端。我的機器上輸出是

Wed Sep 08 15:51:14 EEST 2010 
1

如果你的網站有用戶帳戶,你可以有,他們選擇相關的時區設置,否則我認爲有辦法得到來自瀏覽器的時區,但我認爲其對Java腳本的相當依賴

1

看看這個討論:

How to display the correct time?

正好有你正在尋找的答案。


另一個策略是讀取客戶的IP,將其映射到國家和地區,然後確定可能的時區。它可能不準確,但即使機器/瀏覽器時間/位置設置完全錯誤,它也具有大多數工作的優勢。

或者,讓用戶選擇他的位置並將選擇存儲在提交每個新請求的cookie中。

0

我希望這對你的作品的這個outpu應是你需要 輸出美國的字符串格式: 「M/DD/YYYY」

輸出SP: 「dd/M/yyyy」

System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern 
相關問題