Date et heure

Convertisseur de ticksGardez la dernière fraction de seconde

Une valeur DateTime.Ticks ou une date avec secondes par ligne. Choisissez UTC ou une heure sans fuseau.

Convertisseur de ticks

Entrée

Les données sont traitées dans ce navigateur et ne sont pas envoyées à un serveur.

Résultats

Options

DateTime.Ticks uniquement · origine 0001-01-01 · 1 tick = 100 ns.

Un entier positif ou nul, ou YYYY-MM-DDTHH:mm:ss par ligne, avec 1 à 7 décimales facultatives. UTC accepte Z ou ±HH:mm ; sans suffixe, UTC est appliqué. Unspecified interdit les suffixes.

Kind ne figure pas dans le nombre. Unspecified conserve les champs calendaires sans valeur Unix. Local nécessite le fuseau d’origine, que cet outil ne déduit pas.

Les dates gardent sept décimales. Les secondes et millisecondes Unix sont arrondies vers le bas ; leur reste positif ou nul est exprimé en ticks.

Jusqu’à 1 000 lignes physiques et 100 000 unités de code UTF-16. Les lignes vides sont des erreurs.

Saisissez des données ou chargez un exemple.

Ce convertisseur de ticks aide à relire les grands entiers présents dans les journaux C#. Deux événements distincts peuvent sembler identiques quand une visionneuse limite les dates aux millisecondes.

Vérifiez le type du champ avant de le convertir. DateTime compte depuis l’an 1 ; un TimeSpan exprime une durée. Le nombre ne permet pas de retrouver Kind ni le fuseau utilisé par le système source.

Pourquoi ce convertisseur de ticks ?

Un aller-retour sans perdre un tick

Le convertisseur de ticks affiche 621355968000000001 sous la forme 1970-01-01T00:00:00.0000001Z en UTC. Le retour utilise cette date complète : la fraction inférieure à une milliseconde est conservée.

Une graduation fine agrandie est reliée dans les deux sens à un calendrier et une horloge.

Ne pas inventer de fuseau

Une heure Unspecified décrit les champs d’une horloge, sans définir un instant. Le rapport omet donc Z et les valeurs Unix. Un journal incomplet ne reçoit pas discrètement le fuseau du navigateur.

Deux horloges identiques partent du même compteur ; une seule rejoint un globe et une ligne du temps.

Vérifier le contexte avant le résultat

01

Identifier la propriété enregistrée

UTC convient aux ticks dont la nature UTC est certaine, notamment UtcTicks. DateTimeOffset.Ticks demande aussi Offset. À défaut, examinez les champs sans fuseau ou saisissez une date avec son décalage dans le sens inverse.

02

Tester les extrémités

L’exemple réunit la date minimale, l’origine Unix plus un tick et la date maximale. Appliquez son aperçu pour contrôler les sept décimales. Annuler restaure ensuite la saisie et le rapport précédents.

03

Maîtriser le rafraîchissement

Le mode automatique attend 350 ms après une modification. Désactivez-le pour utiliser le bouton ou Ctrl/Cmd + Enter. Le retour exige des lignes toutes valides ; un changement de réglage bloque immédiatement l’export périmé.

Des entiers exacts, des erreurs repérables

Deux sens sans flottants

La conversion date vers ticks et le retour restent exacts. Les grands nombres sont exportés sous forme de chaînes JSON pour préserver les chiffres chez un destinataire qui utilise des nombres flottants.

Décalage explicite vers UTC

Une date avec +02:00 est ramenée en UTC avant de compter les ticks. Sans suffixe, l’interprétation choisie s’applique. Le fuseau du poste ne modifie pas le calcul.

Millisecondes et reste

Le rapport UTC donne les secondes et millisecondes Unix avec leurs restes en ticks. Juste avant 1970, le quotient reste négatif grâce à l’arrondi vers moins l’infini, au lieu de devenir zéro.

Correspondance des lignes

Les erreurs gardent leur texte source et leur numéro de ligne. L’aperçu commence à 50 lignes et peut être étendu par 50 ; la copie et le téléchargement portent toujours sur le lot entier.

Origine et limites de chaque valeur

Une seule famille de compteurs
Origine grégorienne 0001-01-01, unité de 100 ns. Aucun décodage FILETIME, WebKit, Excel, TimeSpan, Stopwatch, Environment.TickCount, rowversion ou DateTime.ToBinary. La longueur du nombre ne sert pas à deviner son type.
Une plage bornée
Les ticks vont de 0 à 3155378975999999999, et les années de 0001 à 9999 sur quatre chiffres. Le résultat UTC après application du décalage doit aussi rester dans cette plage.
Dates strictes
YYYY-MM-DDTHH:mm:ss accepte un espace à la place de T, 1–7 décimales et éventuellement Z ou ±HH:mm. Dates impossibles, secondes intercalaires, 24:00, secondes absentes et précision plus fine sont refusées. Aucun espace n’est retiré automatiquement.
Aucune déduction de Kind
Les décalages doivent rester dans ±14:00 ; -00:00 est refusé. Unspecified interdit aussi Z. Changer l’interprétation relit les mêmes champs : cela ne convertit pas Local, ne retrouve pas de zone IANA et ne résout pas l’heure d’été.
Limites du lot
Au plus 1 000 lignes physiques et 100 000 unités de code UTF-16. Les lignes vides, y compris après un saut final, sont des erreurs. Tout dépassement rejette le lot. Pas de fichier, de lecture URL, de calcul de dates ni d’horloge continue.
Remplacement contrôlé
Exemple, Effacer et Inverser affichent d’abord le nouveau texte et sa taille. Après application, une annulation restaure saisie, réglages et résultats. Le retour ne saute aucune erreur et n’utilise pas de millisecondes arrondies.

Convertisseur de ticks : questions fréquentes

Comment convertir des ticks en date ?

Choisissez Ticks → date et précisez le contexte. En C#, new DateTime(ticks) recrée les champs avec Kind.Unspecified. Si les ticks stockés sont bien UTC, utilisez le constructeur prenant DateTimeKind.Utc.

Pourquoi DateTime.Ticks dépend-il du fuseau ?

Ticks reflète les champs de l’horloge et Kind en indique le sens. DateTime.Now et ToUniversalTime() peuvent donc désigner le même instant avec des nombres différents. Enregistrer seulement Ticks ne conserve pas Kind.

Comment obtenir des millisecondes à partir des ticks ?

Il y a 10 000 ticks par milliseconde. Diviser directement compte depuis l’an 1. Pour les millisecondes Unix en UTC, soustrayez d’abord 621355968000000000, puis divisez. Gardez le reste si la fraction compte pour votre traitement.

Peut-on stocker DateTime.Now.Ticks dans un int sans perte ?

Un int de 32 bits est trop petit pour une date actuelle. Utilisez long en .NET et une chaîne lors des échanges avec des parseurs JSON à virgule flottante. Stocker un écart à une base choisie nécessite une plage expressément limitée.

Pourquoi DateTime utilise-t-il des ticks plutôt que des millisecondes ?

Le pas de 100 ns permet une représentation plus fine dans un entier de 64 bits. Il ne garantit pas que l’horloge système distingue réellement des instants espacés de 100 ns : résolution du format et précision de mesure sont distinctes.

Un résultat inattendu ?

Contrôler une valeur connue

Utilisez le convertisseur de ticks sur une date de référence, puis conservez le rapport complet avec l’interprétation retenue pour faciliter la vérification du journal.