Heim >Backend-Entwicklung >C++ >Wie schneide ich Millisekunden von einem .NET DateTime ab?

Wie schneide ich Millisekunden von einem .NET DateTime ab?

Linda Hamilton
Linda HamiltonOriginal
2025-01-18 22:01:17440Durchsuche

How to Truncate Milliseconds from a .NET DateTime?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn