Prise en charge de la seconde bissextile

Cet article fournit des informations sur la prise en charge de Microsoft pour la seconde seconde bissextile.

S’applique à : Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2 Service Pack 1, Windows 10, version 2004, Windows 10, version 1909, Windows 10, version 1803, Windows 10, version 1709, Windows 7 Service Pack 1
Numéro de la base de connaissances d’origine : 2722715

Résumé

Cet article contient des informations sur la prise en charge de Microsoft pour la seconde seconde bissextile. La seconde bissextile est un ajustement d’une seconde, qui est parfois appliqué au temps universel coordonné (UTC) afin de garder son heure de la journée proche de l’heure solaire moyenne, ou UT1.

Remarque

Windows Server 2019 et Mise à jour d'octobre 2018 de Windows 10 prennent en charge les secondes bissextiles dans la plateforme. Toutefois, cet article ne s’applique pas strictement à ces systèmes d’exploitation ou versions ultérieures. Pour plus d’informations, consultez l’article suivant :

Plus d’informations

(1) Windows

À propos du système d’exploitation
Le traitement leap second n’est pas géré séparément par le système d’exploitation Windows. Par exemple, les informations sur l’année, le mois, la date et l’heure au format suivant ne sont pas prises en charge par le système d’exploitation Windows :

aaaa/mm/jj 08 :59 :60

Par conséquent, 2012/7/1 08 :59 :60 est traité comme 2012/7/1 09 :00 :00, selon le format ISO 8601.

À propos du service de synchronisation de l’heure (Service de temps Windows)
Le service de temps Windows n’implémente pas de seconde bissextile, même s’il passe par l’indicateur Leap Indicator (LI) du serveur NTP vers le serveur qui héberge le service de temps Windows et les clients de bas niveau qui se synchronisent à partir de celui-ci. Le service de synchronisation de l’heure Windows (W32Time) n’insère pas de seconde bissextile et poursuit à la place le processus de synchronisation de l’heure habituel.

Pendant la brève période qui suit l’introduction d’une seconde bissextile sur un serveur NTP amont (y compris le serveur W32time), une différence de temps d’environ une seconde se produit entre ce serveur NTP amont et les clients W32time qui se synchronisent à partir de celui-ci. Les clients W32time corrigent leurs horloges locales lorsqu’ils synchronisent par la suite l’heure à partir de leur serveur amont.

Pour plus d’informations, consultez l’article suivant de la Base de connaissances Microsoft (KB) :

909614 Comment le service de temps Windows traite une seconde bissextile

En outre, dans le service de temps Windows, il n’est pas toujours possible d’empêcher l’apparition de différences de temps marginales, comme une seconde. Le système d’exploitation est conçu pour gérer les variations de temps. Les variantes leap second sont gérées proprement, ce qui permet une exécution ininterrompue. Pour plus d’informations, consultez l’article suivant de la Base de connaissances :

939322 limite de prise en charge pour configurer le service de temps Windows pour les environnements de haute précision

À propos du service de cluster Quant à la configuration du cluster, elle est identique à celle du système d’exploitation : le traitement en seconde seconde n’est pas effectué.

(2) SQL Server 2000, 2005, 2008, 2008 R2, 2012 et 2014

SQL Server n’utilise pas de données de temps pour gérer les opérations internes telles que les transactions. Par conséquent, même si un écart d’une seconde se produit dans l’heure système en raison de la seconde bissextile, il n’affecte pas les opérations SQL Server. Comme avec le système d’exploitation Windows, SQL Server ne reconnaît pas indépendamment la seconde bissextile.

N’oubliez pas que le type de données date (par exemple, datetime) ne prend pas en charge le format dans lequel la valeur des secondes atteint 60, par exemple 2012/7/1 08 :59 :60. Par conséquent, si une connexion est établie pour SQL Server à partir d’une application qui s’exécute sur un système d’exploitation qui prend en charge la seconde bissextile et que le système d’exploitation tente de définir une seconde bissextile (données dont la valeur est 60) dans la colonne et la variable du type de données date, une erreur est retournée. Pour plus d’informations, consultez la section « Informations de référence » suivante.

Informations de référence

[Exemple] Lorsque la seconde intercalaire est gérée en tant que type de données date dans le SQL Server

create table leap_second(
a int,
b datetime,
)
go
insert into [leap_second] values (1,convert(datetime,'2012/07/01 08:59:60'))
go
select convert(datetime,'2012/07/01 08:59:60')
go
select datediff(day,convert(datetime,'2012/07/01 08:59:60'),getdate())
go
declare @b datetime
set @b='2012/07/01 08:59:60'
go
declare @c time
set @c='08:59:60'
go
declare @d datetime2
set @d='2012/07/01 08:59:60'
go
declare @e datetimeoffset 
set @e='2012/07/01 08:59:60'
go

Résultat
Message 242, niveau 16, état 3, ligne 1
Suite à la conversion du type de données varchar au type de données datetime, la valeur est définie en dehors de la plage.
L’instruction est terminée.

Message 242, niveau 16, état 3, ligne 1
Suite à la conversion du type de données varchar au type de données datetime, la valeur est définie en dehors de la plage.

Message 242, niveau 16, état 3, ligne 1
Suite à la conversion du type de données varchar au type de données datetime, la valeur est définie en dehors de la plage.

Message 242, niveau 16, état 3, ligne 3
Suite à la conversion du type de données varchar au type de données datetime, la valeur est définie en dehors de la plage.

Message 241, niveau 16, état 1, ligne 2
Le processus de conversion a échoué lors de la conversion de la chaîne de caractères vers la date et l’heure, ou vers l’une des deux.

Message 241, niveau 16, état 1, ligne 2
Le processus de conversion a échoué lors de la conversion de la chaîne de caractères vers la date et l’heure, ou vers l’une des deux.

Message 241, niveau 16, état 1, ligne 2
Le processus de conversion a échoué lors de la conversion de la chaîne de caractères vers la date et l’heure, ou vers l’une des deux.

(3) Exchange Server 2003, 2007, 2010 et 2013

Le temps utilisé dans Exchange Server inclut l’heure mesurée par l’horloge système et l’heure qui est calculée comme la période écoulée depuis le début du service. Dans le traitement qui utilise l’horloge système, le serveur Exchange fonctionne sans reconnaître la seconde bissextile. D’autre part (en ce qui concerne la période écoulée), bien qu’une différence d’une seconde se produise avec l’insertion de la seconde bissextile, cet écart peut se produire même dans des circonstances normales. Comme avec le système d’exploitation Windows, Exchange Server est conçu pour gérer les variations de temps mineures. Par conséquent, les opérations Exchange Server ne sont pas affectées.

En plus de l’opération interne, une planification au format iCalendar représente un cas dans lequel il est possible de recevoir (de l’extérieur) une valeur de temps à laquelle une seconde bissextile a été ajoutée. Toutefois, lorsque Exchange Server reçoit des planifications au format iCalendar, le programme prend uniquement en charge les formats dans lesquels la notation temporelle est définie conformément à la norme RFC 5545. En ce qui concerne la seconde bissextile, la notation de secondes est prise en charge dans la plage 060. Si un nombre supérieur à 60 est spécifié comme valeur de seconde, il est traité comme un format non valide et n’est pas reconnu comme le format iCalendar correct.

Dans Outlook, 60 secondes est considéré comme 0. Par conséquent, 2012/07/01 08 :59 :60 devient 2012/07/01 08 :59 :00. Cela signifie qu’il y a une possibilité d’écart d’une minute au maximum. Dans ce cas, l’ordre de réception des e-mails peut sembler s’être dévié, mais dans le cas contraire, il n’y a aucun effet sur les opérations.

Pour plus d'informations, consultez les articles suivants :

2.2.36 [RFC5545] Section 3.3.12 Heure

(4) Internet Information Services (IIS)

La seconde bissextile n’a aucun effet dans IIS.

(5) Autres

Les applications qui s’exécutent dans Windows utilisent généralement l’horloge système. Par conséquent, ils peuvent être utilisés sans tenir compte de la seconde bissextile.

Toutefois, si un produit Microsoft est accessible à partir d’une application qui gère le temps seule et qui prend en charge la seconde bissextile, ou à partir d’une application qui s’exécute sur un système d’exploitation qui prend en charge la seconde bissextile, des problèmes sont susceptibles de se produire. Cela est dû au fait que les produits Microsoft ne reconnaissent pas la seconde bissextile.

En outre, les applications ne doivent pas compter sur le temps système pour augmenter de manière monotone. Au lieu de cela, ils doivent utiliser la fonction GetTickCount64() pour lire le nombre de cycles actuel, qui est le temps écoulé depuis le démarrage en millisecondes.