我嘗試以UTC格式存儲我的日期值到我的SQL Server數據庫,然後將它們轉換爲本地時間顯示,似乎工作正常,我可以看到我的DB日期值存儲是不同的(我認爲它已被轉換爲UTC),檢索它並顯示也是準確的,直到我嘗試通過在日期和時間選項(任務欄中Windows時間設置的右下角)中更改它來測試不同的時區以便「遷移「我自己。顯然,日期仍然保留,因爲我在我的國家,即使我改變的時區有3小時的差異。asp.net +測試時區
可以以某種方式請建議的方式來測試不同時區的日期顯示?
謝謝。
存儲日期值到SQL Server:
DateTime dateFrom = DateTime.Parse(startDateTime).ToUniversalTime();
DateTime dateTo = DateTime.Parse(endDateTime).ToUniversalTime();
parameters.Add(new SqlParameter("@StartDateTime", dateFrom));
parameters.Add(new SqlParameter("@EndDateTime", dateTo));
Retrive從DB和顯示:
DateTime date = DateTime.UtcNow.ToLocalTime();
date = DateTime.Parse(dr["StartDateTime"].ToString()).ToLocalTime();
litDateTimeFrom.Text = date.ToString("dd MMM yy hh:mm tt");
date = DateTime.Parse(dr["EndDateTime"].ToString()).ToLocalTime();
litDateTimeTo.Text = date.ToString("dd MMM yy hh:mm tt");
我實際上是遵循這個例子:http://www.4guysfromrolla.com/articles/081507-1.aspx我很困惑,因爲我認爲我可以使用.tolocaltime方法將utc轉換爲本地時間,而無需takecare抵消 – k80sg
好的,清除瀏覽器緩存解決了這個問題。 – k80sg
@ user415795,真的沒有混淆。如果你仔細閱讀你看過的文章,作者也會這樣說。他使用'DateTime.ToLocalTime'來轉換爲**服務器時間** - 確切的引用是*「給定UTC的時間,.NET Framework可以很容易地將其轉換爲服務器時間,只需使用DateTime類的ToLocalTime( ) 方法」*。服務器時間與用戶當地時間不一致 - 您可以在不同時區有兩個用戶,第三個服務器可以有三個不同的本地時間。 – VinayC