簡體   English   中英

在數據庫中以UTC格式保存日期時間

[英]Save the Datetime in UTC in database

我在以UTC格式保存日期時遇到問題。 我之前將datetime作為用戶輸入,我希望將datetime的UTC值保存在數據庫中。 我使用一個文本框(用於獲取確切日期)和一個下拉列表(用於獲取該日期的小時數)以從用戶獲取日期時間輸入值。 下面是我的代碼,用於在合並兩個控件值后從用戶獲取確切的輸入日期時間。 喜歡:25/12/2011作為日期和10小時后兩個值組合日期值是25/12/2011 10:00 AM他的計算我使用下面的代碼:

      string[] dateArray = HdnDPC_date1.Value.Split('/');
            string dtt = dateArray[1] + "/" + dateArray[0] + "/" + dateArray[2];
            var fdate = Convert.ToDateTime(dtt);

           DateTime dadate = new DateTime(Convert.ToInt32(dateArray[2]), Convert.ToInt32(dateArray[1]), Convert.ToInt32(dateArray[0]));
            dadate = Convert.ToDateTime(fdate).AddHours(deadlineHr);

下面的代碼用於轉換UTC中的日期時間值

            DateTime DeadLine = TimeZoneInfo.ConvertTimeToUtc(dadate);

但是代碼沒有根據時區轉換輸入日期時間,它總是根據“中央時區,美國和加拿大”進行轉換但我想根據用戶的時區轉換該日期時間。

請幫助我確定這個問題為什么會發生這種情況。

您可以嘗試使用ToUniversalTime函數

DateTime univDateTime = DateTime.Now.ToUniversalTime();

更多關於ToUniveralTime 信息

您需要指定用戶的時區。 例如:

TimeZoneInfo.ConvertTimeToUtc(dadate, 
            TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"));

將線程的當前文化設置為用戶的文化,如:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage); 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);

請參閱http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM