从 .NET DateTime 对象中删除毫秒
当使用来自不同来源的时间戳时,通过从 .NET DateTime
对象中删除毫秒来对齐精度通常至关重要。本指南详细介绍了使用内置函数和自定义扩展方法的有效方法。
使用内置方法:
要使用内置函数消除毫秒,请通过减去除以 DateTime
后的余数来调整 Ticks
的 TimeSpan.TicksPerSecond
属性,同时保留 Kind
属性:
<code class="language-csharp">DateTime dateTime = ... any DateTime value ...; dateTime = new DateTime( dateTime.Ticks - (dateTime.Ticks % TimeSpan.TicksPerSecond), dateTime.Kind );</code>
简洁替代方案:
更紧凑的等效形式:
<code class="language-csharp">dateTime = dateTime.AddTicks(-(dateTime.Ticks % TimeSpan.TicksPerSecond));</code>
可重用性扩展方法:
为了更广泛的应用,创建一个扩展方法:
<code class="language-csharp">public static DateTime TruncateMilliseconds(this DateTime dateTime, TimeSpan timeSpan) { if (timeSpan == TimeSpan.Zero) return dateTime; if (dateTime == DateTime.MinValue || dateTime == DateTime.MaxValue) return dateTime; return dateTime.AddTicks(-(dateTime.Ticks % timeSpan.Ticks)); }</code>
实际应用:
此扩展方法允许截断到各种间隔:
<code class="language-csharp">dateTime = dateTime.TruncateMilliseconds(TimeSpan.FromMilliseconds(1)); // Remove milliseconds dateTime = dateTime.TruncateMilliseconds(TimeSpan.FromSeconds(1)); // Truncate to seconds dateTime = dateTime.TruncateMilliseconds(TimeSpan.FromMinutes(1)); // Truncate to minutes // ... and so on</code>
这些技术提供了从 .NET DateTime
对象中删除毫秒的简单方法,确保不同系统之间的时间戳比较一致。
以上是如何从 .NET DateTime 对象截断毫秒?的详细内容。更多信息请关注PHP中文网其他相关文章!