.NET DateTime からミリ秒を切り捨てる
SQL Server のタイムスタンプに格納されるミリ秒という固有の精度は、この精度に欠ける受信リクエストのタイムスタンプと比較するときに問題を引き起こす可能性があります。この不一致を考慮するには、ミリ秒を切り捨てることが一般的な解決策です。
これは次の方法で実現できます:
<code class="language-csharp">DateTime dateTime = ... 任何值 ...; 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 Truncate(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.Truncate(TimeSpan.FromMilliseconds(1)); // 截断到整毫秒 dateTime = dateTime.Truncate(TimeSpan.FromSeconds(1)); // 截断到整秒</code>
以上が.NET DateTime からミリ秒を切り捨てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。