【发布时间】:2014-07-01 18:45:06
【问题描述】:
我收到了
"提供的 DateTime 表示无效时间。例如,当 时钟向前调整,在被跳过的时间段内的任何时间 无效”
当我尝试将时间转换为UTC 时的消息。遇到问题的客户在法国,但问题似乎是在美国进入夏令时时开始的。我看到代码中有一个使用东部时区的地方。我认为它必须以某种方式尝试使用东部标准时间。
无论如何,在将我的语言环境设置为法国/法国并将我的时区设置为阿姆斯特丹、柏林等之后,我尝试通过调用相同的方法来模仿他们的场景。我的测试代码正在执行:
DateTime eventDate = System.DateTime.Now.ToLocalTime();
没有意义的是,它返回的是美国东部夏令时的日期时间,而不是我的系统时钟显示的时间。 BIOS 时钟设置为 EDT 还是什么?我的意图是将 eventDate 传递给我的法国客户似乎无法正常工作的方法。
【问题讨论】:
-
旁注:
Now已经是Kind=Local,所以你的ToLocalTime调用完全没有任何作用。 -
您能否使用
DateTime.UtcNow并跳过除演示之外的转换需求,即仅使用 UTC 日期时间在内部工作? -
我添加了 TimeZoneInfo.ClearCachedData();在我调用 Now 之前,它现在返回正确的时间。
-
你应该把它写下来作为答案。
-
问题在哪里?
标签: c# .net datetime timezone dst