Tronquer date-heure à l'unité
Ramenez une date et heure au début de son année, de son mois, de son jour, de son heure ou de sa minute en UTC : 2024-06-15T14:37:52Z tronquée au jour devient 2024-06-15T00:00:00Z. Utile pour les rapports quotidiens et les graphiques horaires. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Date et heure
- 2024-06-15T14:37:52Z day
- Résultat
- 2024-06-15T00:00:00Z day
- Année
- 2 024
- Mois
- 6
- Jour
- 15
Tronquer un horodatage à une unité plus grossière est le fondement des buckets quotidiens, des rapports mensuels, des graphiques horaires et des clés de cache qui doivent s'accorder entre langues et hôtes. Cet outil de troncature date-heure à l'unité accepte une date-heure ISO-8601 explicite —heure complète avec Z ou un décalage numérique, ou une chaîne date seule traitée comme minuit UTC— plus une unité année, mois, jour, heure ou minute. Il normalise l'entrée en Temps universel coordonné avec une arithmétique grégorienne pure, puis met à zéro tout champ plus fin que l'unité choisie, de sorte que le résultat soit un instant de plancher UTC stable écrit année-mois-jour T heure-minute-seconde Z. Les jours de calendrier impossibles et les unités inconnues échouent avec une erreur de validation claire au lieu d'inventer un report.
Comment la troncature UTC fonctionne sans horloge système
Partez d'une date-heure de base explicite écrite sous la forme internationale ISO pour que chaque client s'accorde sur la même année, le même mois, le même jour et les champs d'horloge optionnels. Lorsqu'une seule date de calendrier est fournie, traitez-la comme minuit en Temps universel coordonné. Lorsqu'une heure est présente, acceptez des fractions de seconde optionnelles tronquées à des secondes entières et soit un Z final pour UTC, soit un décalage numérique d'heures et de minutes avec signe plus ou moins, soustrait lors de la conversion en temps absolu.
Validez que le jour civil existe selon les règles grégoriennes de bissextilité —le 29 février n'est légal que si l'année est divisible par quatre, sauf que les années séculaires doivent aussi l'être par quatre cents— et que heure, minute et seconde restent dans leurs plages usuelles. Convertissez le triple civil en un numéro de jour sériel avec l'algorithme days-from-civil de Howard Hinnant, multipliez par quatre-vingt-quatre mille six cents secondes, ajoutez l'heure locale du jour et soustrayez les minutes de décalage multipliées par soixante pour obtenir les secondes d'époque UTC.
Reconstruisez année, mois, jour, heure, minute et seconde UTC avec civil-from-days. Appliquez ensuite un plancher pur par unité : year remet le mois à un et le jour à un avec l'horloge à zéro ; month conserve année et mois mais fixe le jour à un et l'horloge à zéro ; day conserve la date de calendrier et met l'horloge à zéro ; hour met à zéro minute et seconde ; minute met à zéro uniquement la seconde. Formatez les champs civils tronqués en chaîne quatre-deux-deux T deux-deux-deux Z.
Où les calculateurs de troncature date-heure à l'unité sont utiles
Les pipelines d'analytique matérialisent des clés d'événements quotidiennes et horaires en abaissant les horodatages d'ingestion au plancher, afin que chaque langue et région partage le même bucket UTC sans inventer une bibliothèque de calendrier. Les équipes finance et opérations regroupent lignes de grand livre ou tickets de support en périodes mois ou jour pour des synthèses déterministes alignées sur les audits hors ligne.
Les tableaux de bord produit et croissance tracent l'activité par heure ou jour avec un plancher stable pour que les aperçus navigateur et les agrégations backend ne divergent jamais d'une heure aux transitions d'heure d'été.
Si vous devez plus tard ajouter des heures ou des jours à un horodatage, compter les jours entre deux dates, calculer début et fin de mois, ou convertir des unités de temps pures entre heures et minutes, traitez-les comme des intentions de recherche et des pages distinctes plutôt que de surcharger cette page de troncature date-heure à l'unité : ces problèmes répondent à d'autres requêtes même si une partie de l'arithmétique se ressemble en dessous.
Cas d’usage
Buckets d'analytique quotidiens et horaires
Abaissez les horodatages d'événements ISO au jour ou à l'heure en UTC pour que chaque langage du pipeline matérialise la même clé d'agrégation pour graphiques et rollups.
Périodes de rapport mensuelles et annuelles
Tronquez des date-heures de grand livre ou de tickets au mois ou à l'année pour construire des débuts de période déterministes pour exports, audits et synthèses financières.
Questions fréquentes
Quelles unités sont prises en charge ?
Exactement cinq jetons sans distinction de casse : year, month, day, hour et minute.
La troncature utilise-t-elle mon fuseau local ?
Non. Le plancher est toujours calculé en UTC à partir de la chaîne d'entrée explicite. Les décalages de la chaîne sont d'abord convertis en UTC ; l'horloge hôte n'est jamais lue.
Que se passe-t-il avec un jour de calendrier invalide ?
La tâche ne bascule pas en mars et n'invente pas de jour bissextile.
Qu'obtient-on en tronquant au mois ou à l'année ?
En tronquant au mois, vous obtenez le premier jour de ce mois à minuit UTC. En tronquant à l'année, vous obtenez le 1er janvier de cette année à minuit UTC, toutes les parties plus petites étant mises à zéro.
Que devient une heure écrite avec un décalage horaire ?
Elle est d'abord convertie en UTC, puis tronquée. Une heure avec un décalage positif peut donc tomber sur une autre heure, voire un autre jour, que celui affiché dans le texte d'origine.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/date/truncate-to-unit \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"datetime":"2024-06-15T14:37:52Z","unit":"day"}'const res = await fetch("https://api.kit.forhosting.com/date/truncate-to-unit", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"datetime": "2024-06-15T14:37:52Z",
"unit": "day"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/truncate-to-unit",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"datetime": "2024-06-15T14:37:52Z",
"unit": "day"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/truncate-to-unit", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"datetime":"2024-06-15T14:37:52Z","unit":"day"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"datetime":"2024-06-15T14:37:52Z","unit":"day"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/truncate-to-unit", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"datetime": "2024-06-15T14:37:52Z",
"unit": "day"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.truncate_to_unit",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les fuseaux de l'hôte et les tables d'heure d'été font diverger un plancher naïf entre navigateurs, serveurs et Workers en bordure.
Ce que vous envoyez et ce que vous recevez
Contrôles classiques : ramener quatorze trente-sept au jour à minuit UTC, ramener un horodatage matinal avec décalage plus-deux à l'heure en Z pur, ramener au mois le premier jour, ramener à l'année le premier janvier, et rejeter une base telle que le 29 février d'une année commune. Envoyez deux champs obligatoires : datetime comme chaîne ISO-8601, par exemple deux mille vingt-quatre tiret zéro six tiret quinze T quatorze deux-points trente-sept deux-points cinquante-deux Z, et unit parmi year, month, day, hour ou minute (sans distinction de casse). Les alias date, dt, timestamp et ts sont acceptés pour la chaîne de base ; les alias to, truncate_to et granularity pour l'unité. Champs manquants, datetime non chaîne, chaînes hors forme ISO, jours de calendrier impossibles, composants horaires invalides et unités hors des cinq jetons autorisés échouent avec invalid_input et ne sont pas facturés. En cas de succès, la réponse renvoie le datetime de base trimé, l'unit en minuscules normalisée, la chaîne ISO UTC résultante après troncature, l'année, le mois, le jour, l'heure, la minute et la seconde numériques de l'instant plancher, le epoch_seconds du résultat et une courte formule documentant la règle de plancher UTC. Le prix des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas le solde prépayé.
Où les calculateurs de troncature date-heure à l'unité sont utiles
Comme la capacité est un moteur parse pur, le prix API est la base publiée de $0.002 par élément réussi et une validation échouée ne consomme pas le solde.
Cas d'intégration
Fixtures QA aux bornes de bucket
Générez des instants de plancher attendus autour de minuit, des débuts de mois et de la conversion décalage vers UTC pour tests de régression sans horloge hôte.
Questions techniques
Comment tronquer une date-heure au jour en UTC ?
Envoyez datetime comme chaîne ISO-8601 et unit comme day. L'API renvoie la même date de calendrier à 00:00:00Z après normalisation de tout décalage numérique en UTC.
Combien coûte l'outil de troncature date-heure à l'unité ?
L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.