Extraits de timestamp Unix en C#
Exemples C# pour les secondes epoch actuelles, les millisecondes, la conversion avec DateTimeOffset, la sortie ISO 8601 et le parsing de timestamps depuis des chaînes de date.
DateTimeOffset.UtcNow.ToUnixTimeSeconds()DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()DateTimeOffset.FromUnixTimeSeconds(1700000000)
DateTimeOffset.FromUnixTimeMilliseconds(1700000000000)DateTimeOffset.FromUnixTimeSeconds(1700000000)
.UtcDateTime
.ToString("O")var dt = DateTimeOffset.Parse("2023-11-15T06:13:20Z");
dt.ToUnixTimeSeconds();
dt.ToUnixTimeMilliseconds();Bases des horodatages en C#
Le C# moderne devrait utiliser DateTimeOffset pour le travail sur les horodatages Unix. DateTimeOffset.UtcNow.ToUnixTimeSeconds() renvoie des secondes Unix et ToUnixTimeMilliseconds() renvoie des millisecondes compatibles JavaScript.
Convertir les valeurs DateTimeOffset
Utilisez FromUnixTimeSeconds ou FromUnixTimeMilliseconds pour convertir des valeurs epoch en DateTimeOffset. Conservez le stockage en UTC et formatez avec le format aller-retour O quand vous avez besoin d'une chaîne ISO 8601.
Notes de production pour C#
DateTimeOffset est généralement plus sûr que DateTime pour le travail sur les horodatages, car il garde un décalage attaché à la valeur. Stockez des instants UTC pour les comparaisons et la persistance, puis convertissez vers un fuseau local uniquement pour l'affichage. Méfiez-vous quand des intégrations disent « temps epoch » sans préciser secondes ou millisecondes.
- Utilisez DateTimeOffset.UtcNow.ToUnixTimeSeconds() pour des secondes Unix standard
- Utilisez ToUnixTimeMilliseconds() pour des valeurs compatibles JavaScript
- Utilisez FromUnixTimeSeconds() en lisant des valeurs d'API documentées comme des secondes
- Utilisez le format O pour des chaînes ISO 8601 aller-retour dans les journaux et le JSON
FAQ
- Le code d'horodatage doit-il utiliser DateTime ou DateTimeOffset ?
- Préférez DateTimeOffset pour le travail avec les horodatages Unix car il préserve le contexte de décalage. Il expose aussi des aides directes pour les secondes et les millisecondes Unix.
- Que fait le format O ?
- Le format O écrit une valeur ISO 8601 aller-retour. Il est utile pour les logs, le JSON et les tests où l'instant exact doit survivre à l'analyse.
- Comment vérifier une conversion C# ?
- Reconvertissez la valeur avec DateTimeOffset.FromUnixTimeSeconds ou FromUnixTimeMilliseconds, formatez-la avec O et comparez cette sortie UTC à votre horodatage attendu avant d'enregistrer la valeur.