c# - TimeZoneInfo.ConvertTimeFromUtc 返回错误的值
问题描述
我正在使用设定的日期/时间值并从 UTC 转换,但时区。我希望得到原始时间 - 5 是 EST 时区的正确时间,但它偏离了 1 小时,仅偏移了 4 小时。
string dateString = "3/15/2021 6:59 AM";
DateTime TimeDataDue = DateTime.Parse(dateString, System.Globalization.CultureInfo.InvariantCulture);
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var TimeDataDueEastern = TimeZoneInfo.ConvertTimeFromUtc(TimeDataDue, easternZone).Dump();
我得到的输出是“3/15/2021 2:59:00 AM”,但我希望得到“3/15/2021 1:59:00 AM”
有什么建议么?
谢谢!
解决方案
正如 Yarik 在问题评论中所说,您获得的结果是正确的。
您可以在此处查看美国东部时区的 2021 年 DST 时间表: https ://www.timeanddate.com/time/zone/usa/new-york?year=2021
此外,您会注意到easternZone.DisplayName
在您的代码中将是"(UTC-05:00) Eastern Time (US & Canada)"
(假设是英语)。换句话说,尽管时区在其 中包含“标准”一词Id
,但它适用于包括 EST 和 EDT 时段在内的全年。
由于 EDT 于 2021 年 3 月 15 日生效,因此您会得到比 UTC 晚 4 小时的结果。
推荐阅读
- javascript - 如何使用 axios 更改 reactjs 中用户名的状态?
- arrays - 自动创建哈希
- flutter - 颤振地图不适用于图像网络,我该如何解决这个问题
- google-cloud-platform - 访问谷歌转账服务
- java - GraalVM XML 问题
- permissions - discord.js v12 权限
- sql - Group by 语句不适用于 Select Case
- python - Python while 不循环
- google-sheets - 根据 Google 表格上的范围与多个 IF 语句相乘
- visual-studio-code - VSCode 扩展调试不要使用最新更新的代码