Pour calculer un décalage UTC, soustrayez la date et l’heure UTC de la date et de l’heure locales correspondantes, en tenant compte de tout changement de date. Dans Numbers sur Mac, vous pouvez calculer ce décalage en minutes sans choisir de fuseau horaire nommé.

Ce guide s’adresse à toute personne qui vérifie l’horodatage d’une publication par rapport à son équivalent UTC. Toutes les dates de publication ci-dessous sont fictives. Il s’agit de retrouver le décalage correspondant à l’instant de publication et de consigner ce que les éléments disponibles permettent d’établir.

De quelles informations avez-vous besoin avant le calcul ?

Vous avez besoin de deux représentations du même instant de publication : une date et une heure locales complètes, ainsi qu’une date et une heure UTC complètes. Vérifiez que les deux désignent la publication, et que l’une ne désigne pas la publication tandis que l’autre correspond à une modification ultérieure. Leur correspondance est indispensable : une différence numérique plausible ne prouve pas qu’elles vont ensemble.

Distinguez ces quatre notions :

Notion Exemple fictif Ce qu’elle indique
Date civile 2026-07-01 Un jour du calendrier, sans heure ni lien avec UTC
Date et heure locales 2026-07-01 05:25:00 Des champs de date et d’heure qui nécessitent encore un décalage ou un fuseau pour identifier un instant
Instant 2026-06-30T23:40:00Z Un moment précis exprimé en UTC
Décalage UTC +05:45 La différence entre l’heure locale et UTC à cet instant
Fuseau horaire nommé Un identifiant de fuseau fourni au format IANA Un ensemble de règles permettant de déterminer les décalages à différents instants

Apple établit une distinction similaire dans Foundation : Date représente un point dans le temps indépendamment d’un calendrier ou d’un fuseau, tandis que DateComponents représente des champs calendaires interprétés avec un calendrier et un fuseau horaire. Une chaîne de date affichée et un instant sont donc deux types d’entrées différents. Apple : dates et heures

Pour cette feuille de calcul, utilisez des dates grégoriennes valides et des secondes entières comprises entre 00 et 59. Conservez les chaînes d’horodatage d’origine à côté de vos calculs. Si l’une des sources ne fournit qu’une date, ou une heure sans sa date, obtenez l’information manquante avant de calculer un décalage exact.

Comment fonctionne le calcul du décalage ?

La RFC 3339 définit la convention de signe comme l’heure locale moins UTC. Un résultat positif signifie que l’horloge locale est en avance ; un résultat négatif, qu’elle est en retard. Pour retrouver l’heure UTC, soustrayez le décalage de la date et de l’heure locales. RFC 3339, section 4.2

Pour la première publication fictive, les valeurs appariées sont les suivantes :

  • UTC : 2026-06-30T23:40:00Z
  • Heure locale : 2026-07-01 05:25:00
  • Différence : positive de 5 heures et 45 minutes
  • Décalage calculé : +05:45

La date locale est le lendemain. Ne tenir compte que des heures donnerait une différence négative trompeuse. Le calcul explicite en minutes montre pourquoi la date compte :

offset_minutes = 1440 × calendar_day_difference
                 + local_clock_minutes
                 - UTC_clock_minutes

calendar_day_difference = +1
local_clock_minutes = 5 × 60 + 25 = 325
UTC_clock_minutes = 23 × 60 + 40 = 1420

offset_minutes = 1440 + 325 - 1420 = 345
345 minutes = 5 heures et 45 minutes

Ici, la différence en jours calendaires correspond à l’écart entre les dates complètes. Ne soustrayez pas les numéros des jours du mois : du 30 juin au 1er juillet, il y a un jour, même si 1 - 30 est négatif. La feuille de calcul ci-dessous gère le passage d’un mois à l’autre.

Comment effectuer le calcul dans Numbers sur Mac ?

Vous avez besoin de Numbers et d’une feuille de calcul contenant un tableau. Les exemples utilisent les noms de fonctions anglais et des virgules comme séparateurs. Si l’éditeur de formules attend un autre séparateur, insérez la fonction depuis le navigateur de fonctions et renseignez ses champs d’arguments.

1. Créez des colonnes clairement nommées

Utilisez la ligne 1 pour ces libellés : UTC fields en A1, Local fields en B1, Offset minutes en C1 et Reconstructed UTC en D1. Ces libellés décrivent vos entrées ; saisir une date dans la colonne A ne réalise pas à lui seul une conversion de fuseau horaire.

Sélectionnez les colonnes A et B, puis utilisez la barre latérale Format, l’onglet Cell et le menu Data Format pour choisir Date & Time. Choisissez un format d’affichage qui montre la date et l’heure complètes, secondes comprises. Apple décrit ces commandes dans son guide de mise en forme des cellules de Numbers.

2. Construisez explicitement les deux valeurs

Cliquez sur A2 et saisissez la formule suivante. Appuyez sur Return pour la valider :

=DATE(2026,6,30)+DURATION(0,0,23,40,0,0)

Dans B2, saisissez :

=DATE(2026,7,1)+DURATION(0,0,5,25,0,0)

DATE prend l’année, le mois et le jour comme nombres distincts, ce qui évite les chaînes de date ambiguës. DURATION prend les semaines, les jours, les heures, les minutes, les secondes et les millisecondes, dans cet ordre. Ici, l’ajout d’une durée à chaque date fournit l’heure. Apple : DATE, Apple : DURATION

Vérifiez que A2 affiche le 30 juin à 23:40:00 et que B2 affiche le 1er juillet à 05:25:00. Vous représentez les deux ensembles de champs calendaires à soustraire. Conservez le suffixe UTC d’origine dans vos notes de source au lieu de vous fier à l’apparence d’une cellule pour identifier UTC.

3. Soustrayez l’heure UTC de l’heure locale

Dans C2, saisissez :

=DUR2MINUTES(B2-A2)

Le résultat attendu est 345. La soustraction des valeurs de date et d’heure produit une durée, et DUR2MINUTES exprime cette durée en minutes. Si nécessaire, définissez le Data Format de C2 sur Number. Apple : DUR2MINUTES

Pour saisir ou examiner une formule, sélectionnez sa cellule et tapez = ; Numbers ouvre l’Formula Editor. Si une formule renvoie une erreur, cliquez sur l’indicateur d’erreur pour en lire l’explication avant de continuer. Apple : calculer des valeurs à partir des données des cellules d’un tableau dans Numbers sur Mac

4. Notez le décalage signé et vérifiez le résultat

Convertissez le nombre absolu de minutes en heures entières et en minutes restantes. Pour 345, cela donne 5 heures et 45 minutes. Comme le résultat est positif, notez +05:45. Un résultat de -210 deviendrait -03:30 ; le signe s’applique à l’ensemble du décalage.

Dans D2, saisissez le calcul inverse :

=B2-DURATION(0,0,0,C2,0,0)

Formatez D2 en Date & Time pour afficher les deux éléments. La cellule devrait afficher la même date et la même heure qu’en A2. Cela vérifie le sens du calcul et la reconstitution. Cela ne prouve pas indépendamment que les entrées d’origine correspondent à la même publication.

Quels exemples permettent de repérer les erreurs de date et de signe ?

Utilisez ces paires fictives pour vérifier votre interprétation. Pour chaque ligne supplémentaire, construisez A et B avec DATE et DURATION, puis utilisez les références de cellules de cette ligne dans la soustraction.

Horodatage UTC de publication Champs locaux correspondants Décalage en minutes Décalage
2026-06-30T23:40:00Z 2026-07-01 05:25:00 345 +05:45
2026-07-01T02:15:00Z 2026-06-30 22:45:00 -210 -03:30
2026-08-31T23:30:00Z 2026-09-01 01:30:00 120 +02:00

La deuxième paire franchit la limite de date en remontant au jour local précédent. La troisième franchit une limite de mois avec un décalage d’une heure entière. Ensemble, ces exemples permettent de repérer une soustraction inversée, l’omission des dates et l’hypothèse selon laquelle les décalages sont nécessairement des nombres entiers d’heures.

Affichez suffisamment de décimales pour repérer un résultat fractionnaire en minutes. Avec ces entrées en secondes entières, une fraction inattendue mérite d’être examinée : vérifiez les secondes, la précision des entrées et si les enregistrements correspondent réellement. Ne l’arrondissez pas simplement pour obtenir un décalage familier. Les décalages numériques de la RFC 3339 ont une précision à la minute ; une différence comportant des secondes ne peut donc pas être fidèlement représentée en lui ajoutant simplement un décalage HH:MM. RFC 3339, section 4.2

Pourquoi ne peut-on pas déduire un fuseau horaire nommé unique ?

Un décalage décrit la relation à un instant donné. Un fuseau horaire nommé fournit des règles pour déterminer cette relation à d’autres instants. La RFC 9557 distingue explicitement ces notions et explique pourquoi un décalage seul ne suffit pas pour des opérations de calendrier local, comme trouver la même heure locale le lendemain. Un décalage correspondant ne permet donc pas d’établir un fuseau nommé unique. RFC 9557 : définition de fuseau horaire

Consignez le résultat ainsi : « Décalage de publication calculé : +05:45 ; fuseau horaire nommé : inconnu. » Si vous obtenez plus tard un identifiant de fuseau depuis la source, conservez-le séparément. Des publications appariées supplémentaires peuvent révéler d’autres décalages, mais choisir un fuseau exige des éléments qui vont au-delà de la sélection d’une entrée correspondante.

Les API d’Apple suivent le même sens de calcul. TimeZone.secondsFromGMT(for:) prend un fuseau horaire existant et une date pour calculer son décalage. Son argument de date prend par défaut la date actuelle ; pour vérifier une publication, il faut donc fournir l’instant de publication. Cette méthode n’accepte pas un décalage pour renvoyer le fuseau nommé d’origine. Apple : secondsFromGMT(for:)

Quand faut-il s’arrêter et obtenir de meilleures données ?

Suivez cette séquence de décision avant d’accepter le résultat :

  1. Seules des dates civiles sont disponibles : obtenez les heures et une référence UTC. Une date seule ne permet pas d’identifier un instant.
  2. La référence comporte un décalage numérique non nul : convertissez-la en UTC à l’aide du décalage indiqué avant d’utiliser cette feuille de calcul.
  3. Les deux entrées ont déjà été converties en instants : conservez ou récupérez les champs locaux d’origine. Soustraire deux représentations du même instant après normalisation donne zéro.
  4. La différence change lorsque les dates sont affichées : examinez les valeurs complètes enregistrées. Une date masquée fait toujours partie du calcul.
  5. Le calcul fonctionne, mais la correspondance est incertaine : conservez la différence comme candidate jusqu’à confirmation du lien entre les publications.

Numbers peut fournir silencieusement des éléments manquants : Apple indique que la saisie d’une heure seule ajoute la date du jour. Masquer une date ou une heure modifie son affichage, mais la valeur reste disponible pour les calculs. Examinez la Smart Cell View si la cellule visible laisse subsister un doute. Apple : formater les dates, devises et autres données dans Numbers sur Mac

Par ailleurs, un horodatage UTC se terminant par Z établit l’instant UTC sans établir le fuseau local d’origine. La RFC 9557 met à jour le traitement de Z dans la RFC 3339 afin de prendre en compte un décalage local inconnu. La représentation locale distincte est donc indispensable à ce calcul. RFC 9557, section 2.2

Pour vérifier une publication, conservez la paire d’origine, le décalage signé et la raison pour laquelle les deux valeurs représentent le même instant. Vous obtiendrez ainsi un résultat reproductible tout en laissant le fuseau nommé inconnu lorsque les éléments disponibles ne permettent pas de l’identifier.

Sources