我在數據庫中使用UTC的日期,並且我的用戶時區在他們的偏好表中。將UTC日期時間顯示到用戶定義的時區
我有一個擴展方法,從UTC轉換到用戶的時間:
public static DateTime ToClientTime(this DateTime dt)
{
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("SA Pacific Standard Time"); //Hardcoded timezone
return TimeZoneInfo.ConvertTimeFromUtc(dt, cstZone);
}
正如你可以在下面的代碼中看到,現在它有一個硬編碼的時區的名字,我應該通過參數傳遞值(傳遞用戶時區)。
在CurrentThread中,我設置了用戶文化,因此此請求中的所有代碼都以該文化(日期格式,資源,數字格式)運行。 有一種方法可以將用戶的時區存儲在像CurrentThread這樣的全局對象中?
我想要完成的是避免將時區傳遞給上述擴展方法,而是從像CurrentThread這樣的全局對象中獲取時區。擴展方法將從控制器代碼和視圖中調用。
目前還不清楚你問什麼。你實際擁有哪些信息,你在儲存什麼,你想達到什麼目的?請用數據和代碼示例。 –
將所有時間存儲在UTC中,並將它們轉換爲您想要的任何視圖 – Trix
@MattJohnson,請檢查我的編輯,希望現在更清楚。 – Romias