C# 将UTC时间转换为特定时区的问题
我有一个时间跨度值1:00:00 我将其转换为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
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;