c# - 为什么 .NET 不能正确转换时间?

标签 c# .net timezone dst

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/

相关文章:

c# - Xamarin 使用SQLite 组件。无法在屏幕上查看已保存的项目

c# - 调试二叉树

c# - 用空格替换所有不受支持的字符

php - 如何修复opencart默认时区

python - Django 时区字段不接受所有 pytz 时区

c# - 远程需要 HTTPS MVC 5

c# - 在 div C# MVC 5 中单击按钮时呈现局部 View

c# - 具有单独 ID 属性的 EF6 一对一关系

C# 枚举错误 : is a 'type' , 在给定上下文中无效

mysql - mySQL插入带有34位数字的时间戳记值