Heim >Backend-Entwicklung >C++ >Wie schneide ich Millisekunden von einem .NET DateTime ab?
Millisekunden von .NET DateTime abschneiden
Die inhärente Präzision der in SQL Server-Zeitstempeln gespeicherten Millisekunden kann beim Vergleich mit Zeitstempeln eingehender Anforderungen, denen diese Präzision fehlt, zu Problemen führen. Um dieser Diskrepanz Rechnung zu tragen, ist das Abschneiden von Millisekunden eine gängige Lösung.
Dies kann mit den folgenden Methoden erreicht werden:
<code class="language-csharp">DateTime dateTime = ... 任何值 ...; dateTime = new DateTime( dateTime.Ticks - (dateTime.Ticks % TimeSpan.TicksPerSecond), dateTime.Kind );</code>
Alternativ können Sie eine prägnantere Syntax verwenden:
<code class="language-csharp">dateTime = dateTime.AddTicks(-(dateTime.Ticks % TimeSpan.TicksPerSecond));</code>
Außerdem können Erweiterungsmethoden dieses Konzept verallgemeinern:
<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>
Um diese Erweiterungsmethode zu verwenden, geben Sie einfach das gewünschte Kürzungsintervall an:
<code class="language-csharp">dateTime = dateTime.Truncate(TimeSpan.FromMilliseconds(1)); // 截断到整毫秒 dateTime = dateTime.Truncate(TimeSpan.FromSeconds(1)); // 截断到整秒</code>
Das obige ist der detaillierte Inhalt vonWie schneide ich Millisekunden von einem .NET DateTime ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!