2017-05-12 110 views
0

時區信息我已經從數據庫中的特定記錄,例如-6這意味着UTC-6時區信息。
如何使用此-6將我的UTC時間轉換爲UTC-6轉換UTC時間爲當地時間利用數據庫

我想我必須在c#中使用TimeZoneInfo。
所有記錄的時區信息都不相同。

+0

對不起,我被標題 –

回答

0

您可以使用DateTimeOffset創建一個帶有偏移量的日期。

var dbDate = myRawDbDate.Kind == DateTimeKind.Unknown ? DateTime.SpecifyKind(myRawDbDate, DateTimeKind.Utc): myRawDbDate; 
var localDdate = new DateTimeOffset(dbDate, new TimeSpan(0,6,0)).DateTime; 
+0

弄糊塗了日期仍未被轉換爲UTC-6 .. DateTime.SpecifyKind(myRawDbDate,DateTimeKind.Utc)這將返回UTC本地日期時間。 –

+0

@DrewAguirre編輯答案 –

+1

小語法錯誤:在'.DateTime'之前缺少右括號,並且大寫'TimeSpan'。你也可以使用更可讀的(對我來說)'TimeSpan.FromHours(6)'。 –

0

您好,您可以使用TimeZoneInfo類。

var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); //UTC-6 
var UTC6date = TimeZoneInfo.ConvertTimeFromUtc(Yourdate.ToUniversalTime(), timeZone); 

欲瞭解更多信息,請點擊此處鏈接。 MSDN:https://msdn.microsoft.com/en-us/library/bb382835(v=vs.110).aspx

查看所有時區UTC-6:00等

使用TimeZoneInfo.GetSystemTimeZones()方法。

示例代碼:

var timeZonList = TimeZoneInfo.GetSystemTimeZones(); 

    foreach (var item in timeZonList) 
    { 
     Console.WriteLine(item); 
    } 

TimeZoneInfo.ConvertTimeFromUtc(date converted to universal time, "Timezone to convert your date"). 

希望這有助於。