2017-07-27 133 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