2017-07-27 197 views
0

我有原定在特定時間如下與日期時間時區converttime解析

<add key="ScheduledTime" value="18:00" /> 

什麼我想就是它如下

TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 
scheduledTime = TimeZoneInfo.ConvertTime(DateTime.Parse("18:00"), cstZone); 

轉換爲區運行服務但我仍然得到我的系統日期,而不是PST可以有一個人告訴我,我做錯了什麼,當我有以下代碼

DateTime timeUtc = DateTime.UtcNow; 
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 
DateTime cstTime = TimeZoneInfo.ConvertTime(timeUtc, cstZone); 
Console.WriteLine("The date and time are {0} {1}.", cstTime, cstZone.IsDaylightSavingTime(cstTime) ?           cstZone.DaylightName : cstZone.StandardName); 
正在以下

enter image description here

這是我

DateTime timeUtc = DateTime.UtcNow; 
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); 
DateTime cstTime = TimeZoneInfo.ConvertTime(timeUtc, cstZone); 
Console.WriteLine("The date and time are {0} {1}.",cstTime, 
cstZone.IsDaylightSavingTime(cstTime) ? cstZone.DaylightName : cstZone.StandardName); 

DateTime cst = TimeZoneInfo.ConvertTime(DateTime.Parse("18:00"), cstZone); 
Console.Write(cst); 
+0

您希望哪個時區「18:00」在? UTC還是另一個時區? –

+0

時區應該是'PST'我收到時間'27-07-2017 10:07:00',而不是'26-07-2017 23:10:56' – Dotnet

+0

是我的假設是正確的,你的本地時區是不是PST? –

回答

0

服務上的時區可能不是你所期望的。打印並檢查:

Console.WriteLine(TimeZoneInfo.Local); 
+0

更新了問題你檢查,你可以看到第一行是給我確切的日期,但是當我加入的時間和解析它,我讓我的系統時間 – Dotnet

+0

我不知道我理解的輸出。在你的代碼中,你只輸出一行(和一個'日期'),但你的截圖包含2行和2個'日期'。 – KernelMode

+0

你現在可以檢查 – Dotnet