Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将UTC时间转换为特定时区的问题_C#_.net - Fatal编程技术网

C# 将UTC时间转换为特定时区的问题

C# 将UTC时间转换为特定时区的问题,c#,.net,C#,.net,我有一个时间跨度值1:00:00 我将其转换为UTC日期时间 DateTime dateTime = DateTime.UtcNow.Date.Add(timeSpan); 然后将此UTC日期时间转换为(UTC-05:00)东部时间(美国和加拿大) 但它返回的DateTime小时数为“21”,我希望它应该是“20” 因为东部时间(UTC-05:00)(美国和加拿大)应该是凌晨1:00:00-5=20:00:00 你知道我这里做错了什么吗?因为时区是夏令时,所以现在(DateTime.UtcNo

我有一个时间跨度值1:00:00

我将其转换为UTC日期时间

DateTime dateTime = DateTime.UtcNow.Date.Add(timeSpan);
然后将此UTC日期时间转换为(UTC-05:00)东部时间(美国和加拿大)

但它返回的DateTime小时数为“21”,我希望它应该是“20”

因为东部时间(UTC-05:00)(美国和加拿大)应该是凌晨1:00:00-5=20:00:00


你知道我这里做错了什么吗?

因为时区是夏令时,所以现在(DateTime.UtcNow),这是一个小时不同的时间。

如果你只关心服务器时间的话

int dstOffset = 0;

if (System.TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.UtcNow))
   dstOffset = -1;
int dstOffset = 0;

if (System.TimeZone.CurrentTimeZone.IsDaylightSavingTime(DateTime.UtcNow))
   dstOffset = -1;