我有以下代码scheduleConfiguration.Time在UTC 中接受输入并ticks在本地时间返回。
scheduleConfiguration.Time equal {9/13/2015 10:00:00 AM} in UTC
var localTime = scheduleConfiguration.Time.ToLocalTime(); {9/13/2015 1:00:00 PM} in Local
var executionTime = new TimeSpan(localTime.TimeOfDay.Ticks);
Run Code Online (Sandbox Code Playgroud)
我更改了数据合同scheduleConfiguration.Time,因此我需要使用TimeSpan TimeOfDay而不是DateTime Time,但是我需要拥有相同的合同executionTime。所以我下一步
var local time = DateTime.Now.Date.Add(scheduleConfiguration.TimeOfDay);//{9/13/2015 10:00:00 AM} in Local
var executionTime = new TimeSpan(localTime.Ticks);
Run Code Online (Sandbox Code Playgroud)
所以我有3个小时的时差(我有UTC +3时区)
在第一种情况下,如何获得与DateTime相同的结果?
小智 5
您应该使用SpecifyKind方法。
var time = DateTime.SpecifyKind(DateTime.Now.Date.Add(span), DateTimeKind.Utc);
Console.WriteLine(time.ToLocalTime());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |