首页 >后端开发 >C++ >如何从 .NET DateTime 值截断毫秒?

如何从 .NET DateTime 值截断毫秒?

Patricia Arquette
Patricia Arquette原创
2025-01-18 21:57:13317浏览

How to Truncate Milliseconds from a .NET DateTime Value?

从 .NET 日期时间值中删除毫秒

将外部源的时间戳与数据库值进行比较时,通常需要消除毫秒精度差异。 当传入时间戳缺乏毫秒详细信息时,通常会出现这种情况,需要从 .NET DateTime 对象中删除毫秒。

以下是消除毫秒的有效方法:

方法一:直接 Tick 操作

此方法直接修改DateTimeTicks属性:

<code class="language-csharp">DateTime dateTime = ...; // Your DateTime value
dateTime = new DateTime(dateTime.Ticks - (dateTime.Ticks % TimeSpan.TicksPerSecond), dateTime.Kind);</code>

方法2:使用AddTicks

更简洁的替代方案使用 AddTicks 方法:

<code class="language-csharp">dateTime = dateTime.AddTicks(-(dateTime.Ticks % TimeSpan.TicksPerSecond));</code>

方法三:可定制截断的扩展方法

为了获得更大的灵活性,扩展方法允许截断到任何所需的间隔:

<code class="language-csharp">public static DateTime Truncate(this DateTime dateTime, TimeSpan timeSpan)
{
    return dateTime.AddTicks(-(dateTime.Ticks % timeSpan.Ticks));
}</code>

此扩展方法可以通过以下方式实现毫秒截断:

<code class="language-csharp">dateTime = dateTime.Truncate(TimeSpan.FromMilliseconds(1));</code>

此外,它还支持截断到秒或分钟:

<code class="language-csharp">dateTime = dateTime.Truncate(TimeSpan.FromSeconds(1)); // Truncate to the nearest second
dateTime = dateTime.Truncate(TimeSpan.FromMinutes(1)); // Truncate to the nearest minute</code>

这些方法提供了从 .NET DateTime 值中删除毫秒的简单解决方案,无论精度差异如何,都确保准确的时间戳比较。

以上是如何从 .NET DateTime 值截断毫秒?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn