從 .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中文網其他相關文章!