从 .NET 日期时间值中删除毫秒
将外部源的时间戳与数据库值进行比较时,通常需要消除毫秒精度差异。 当传入时间戳缺乏毫秒详细信息时,通常会出现这种情况,需要从 .NET DateTime
对象中删除毫秒。
以下是消除毫秒的有效方法:
方法一:直接 Tick 操作
此方法直接修改DateTime
的Ticks
属性:
<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中文网其他相关文章!