我想在ASP.Net MVC應用程序中使用客戶端時區名稱(例如印度標準時間)。如何在ASP.Net MVC應用程序中獲取客戶端TimeZone
所以,我可以使用TimeZoneInfo.FindSystemTimeZoneById(TimeZoneName)
函數。
我試圖與new Date().getTimezoneOffset()
(reference)
但是,有一個與夏令時的問題本準則。
在JavaScript中,我也試圖與new Date().toString()
但是,這給結果在不同的瀏覽器不同的格式。
在火狐,Chrome &野生動物園, 答案是 「2012星期二5月8日14:00:00 GMT + 0530(印度標準時間)」
在IE8,它是「週二5月8日14:00: 00 UTC + 0530 2012「
與歌劇同樣的問題也。
所以,這種方法不適用於IE & Opera。
什麼是識別客戶端時區的最佳方式?
我不想客戶端時間,我想客戶端時區。 由於夏令時間的原因,TimeOffset不適合我前面提到的。 – Harsh
我說的是時區不可靠。如果你按照Jon Nylander建議的圖書館的鏈接,它會這樣說: 「如果你正在尋找歷史相關的和/或地理上精確的時區,那麼jsTimezoneDetect不適合你 這個腳本不會做地理定位。只需在幾個相同的時區(現代時間)中選擇人口最稠密的時區 例如,無法區分中歐的不同時區,無論您居住在中歐時區的哪個位置,該腳本都會返回歐洲/柏林「。 –
現在,您可以通過捕獲客戶端時間並使用C#TimeZoneInfo類選擇與客戶端時間偏移相匹配的時區來完成該腳本所做的工作,但您仍在猜測。這就是爲什麼我說,如果你需要明確地知道他們的時區,你應該問他們。如果有人想出更好的解決方案,我會感興趣。 –