Maison >développement back-end >C++ >Comment tronquer efficacement les millisecondes d'un objet DateTime .NET ?
Gestion des écarts en millisecondes dans les objets DateTime .NET
Lors de la comparaison des horodatages reçus de requêtes externes avec des valeurs de base de données (par exemple, SQL Server), les différences de précision peuvent entraîner des problèmes de comparaison. Cela vient souvent de la précision à la milliseconde de la base de données, qui peut ne pas être présente dans les données entrantes. Pour remédier à cela, il est nécessaire de supprimer les millisecondes de l'objet .NET DateTime
.
Une solution concise consiste à manipuler directement la propriété Ticks
:
<code class="language-csharp">DateTime dateTime = ...; // Your DateTime object dateTime = new DateTime(dateTime.Ticks - (dateTime.Ticks % TimeSpan.TicksPerSecond), dateTime.Kind);</code>
Alternativement, une version légèrement plus lisible obtient le même résultat :
<code class="language-csharp">dateTime = dateTime.AddTicks(-(dateTime.Ticks % TimeSpan.TicksPerSecond));</code>
Les deux méthodes tronquent efficacement les millisecondes tout en préservant la propriété Kind
(Local, Utc ou Unspecified).
Pour une réutilisabilité améliorée, pensez à créer une méthode d'extension :
<code class="language-csharp">public static DateTime TruncateMilliseconds(this DateTime dateTime, TimeSpan timeSpan) { if (timeSpan == TimeSpan.Zero) return dateTime; // Handle zero TimeSpan if (dateTime == DateTime.MinValue || dateTime == DateTime.MaxValue) return dateTime; // Preserve special values return dateTime.AddTicks(-(dateTime.Ticks % timeSpan.Ticks)); }</code>
Cette méthode d'extension permet une troncature flexible :
<code class="language-csharp">dateTime = dateTime.TruncateMilliseconds(TimeSpan.FromMilliseconds(1)); // Truncate to whole milliseconds dateTime = dateTime.TruncateMilliseconds(TimeSpan.FromSeconds(1)); // Truncate to whole seconds dateTime = dateTime.TruncateMilliseconds(TimeSpan.FromMinutes(1)); // Truncate to whole minutes // ... and so on</code>
Ces méthodes fournissent des moyens simples d'éliminer les écarts en millisecondes lors de la comparaison de DateTime
objets, garantissant ainsi des comparaisons d'horodatage précises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!