在 C# 中,System.DateTime.Now.Ticks 的返回值是否会受到夏令时和冬令时之间切换的影响?

In C#, would the return value of System.DateTime.Now.Ticks be affected by the switch between summer time and winter time?

提问人:Garfield the Dummy 提问时间:11/6/2023 最后编辑:Garfield the Dummy 更新时间:11/6/2023 访问量:73

问:

在 C# 中,如果我使用 System.DateTime.Now.Ticks 检查时间(例如在美国的设备上),并且我根本不更改本地时区,则返回值是否会受到我们当前是否使用夏令时的影响?

详: 例如,我在应用中定期调用 System.DateTime.Now.Ticks。当系统时间从夏令时变为非夏令时时,反之亦然,则 的返回值为 。蜱虫“跳跃”(比如 1 小时或 -1 小时的长度)?

C# 日期时间

评论

3赞 Christian Gollhardt 11/6/2023
是的。请改用。DateTime.UtcNow.Ticks
0赞 Sweeper 11/6/2023
你在说什么情况?返回值被“影响”意味着什么?你能用一个代码示例来解释吗?你的最后一句话是不完整的:“如果我检查时间使用......”然后呢?
0赞 dexiang 11/6/2023
不,不是,刻度是表示日期和时间的内部值,但是,如果您使用不同的 Calendar 或 DateTimeKind,您可能会收到不同的刻度事件,其他参数相同。
0赞 Garfield the Dummy 11/6/2023
@Sweeper我在问题中添加了一些细节。谢谢你的提醒。
0赞 JonasH 11/6/2023
为什么要定期调用 DateTime.Now.Ticks?你用这个值做什么?如果您想测量某种类型的时,您可能应该改用秒表。

答:

3赞 Joshua 11/6/2023 #1

确实如此。 返回适合 的值,并且不执行任何更正。.TicksDateTimeKind

请注意,由于回退时间重复,通话每年有两个小时无法正常工作;如果你想让你的代码工作,几乎总是调用 ;其他任何事情都是一种痛苦。.ToUniversalTime().TicksDateTime.UtcNow.Ticks

评论

0赞 Garfield the Dummy 11/6/2023
那么当设备从夏令时切换到非夏令时时,DateTime.UtcNow.Ticks 的返回值会跳转,反之亦然?
0赞 Martheen 11/6/2023
@GarfieldtheDummy 它不应该跳转,UTC 没有 DST
0赞 Garfield the Dummy 11/6/2023
@Martheen对不起,我应该要求 DateTime.Now.Ticks
0赞 Martheen 11/6/2023
@GarfieldtheDummy是的,假设时区有 DST,本地 DateTime 将跳转