2013 年,英国将在 3 月 31 日之前开始夏令时。
不过,当我尝试将给定时间转换为 UTC 时间时,TimeZoneInfo.ConvertTimeToUtc
减去一小时。
这是为什么?我是否需要告诉此方法夏令时未激活?
var now = new DateTime(DateTime.Now.Ticks, DateTimeKind.Unspecified);
var convertedTime = TimeZoneInfo.ConvertTimeToUtc(now, TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard time"));
Console.WriteLine(convertedTime); // subtracts one hour, even though England time and GMT should be equal
最佳答案
您只是使用了错误的时区。英格兰处于“GMT 标准时间”时区。
“西欧标准时区”适用于欧洲大陆、阿姆斯特丹、柏林、伯尔尼、罗马、斯德哥尔摩、维也纳,UTC+01:00。
关于c# - 为什么 .NET 不能正确转换时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15456285/