作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想了解为什么我的日期是错误的:
DateTime databaseUtcTime = new DateTime(2016, 8, 15, 10, 20, 0, DateTimeKind.Utc);
var timeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Europe Standard Time");
var testDateTime = TimeZoneInfo.ConvertTimeFromUtc(databaseUtcTime, timeZone);
testDateTime
输出 15/08/2016 12:20:00 而不是 15/08/2016 11:20:00这是为什么? 不应该比 UTC 早 1 小时,而不是 2 小时吗?
编辑----
谢谢乔恩斯基特,
如果这对任何人有帮助,我使用:
if(testDateTime.IsDaylightSavingTime())
{
testDateTime = testDateTime.AddHours(-1);
}
尽管您不知道上下文,但这可能有助于了解如何在按时运行某些显式测试时摆脱夏令时。
最佳答案
ID 为“中欧标准时间”的时区只是中欧使用的时区...它真的不是标准时间。
由于中欧目前正在遵守夏令时,偏移量实际上是 UTC+2。
非常不幸的是,Windows 时区中使用的 ID 像这样具有误导性......但是 TimeZoneInfo
实现本身是正确的。
(这并不是 Windows 时区名称的全部错误...有关更多信息,请参阅 Matt Johnson's 帖子...)
关于c# - 转换为中欧标准时间的 UTC 提前 2 小时而不是 1 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955650/
我是一名优秀的程序员,十分优秀!