Microsoft annonce la prise en charge des secondes intercalaires
Par Windows 10 Redstone 5 et Windows Server 2019
L’information est tirée d’un billet de blog du géant technologique paru il y a peu. Microsoft annonce que la mouture à venir de Windows 10 (la Redstone 5) et Windows Server 2019 vont prendre les secondes intercalaires en charge.
De façon brossée, une seconde intercalaire est un ajustement (ajout ou soustraction) d’une seconde effectué sur l’échelle de temps universel coordonné (UTC) pour s’assurer que le temps universel lié à la rotation de la Terre reste calé sur l’heure solaire. « Avec la diminution de la vitesse de rotation de la Terre, l’heure UTC diverge de celle du soleil. Une fois qu’il y a un décalage d’au plus 0.9 s, une seconde intercalaire est insérée pour assurer la synchronisation », explique Microsoft. La prise en compte de ce phénomène a débuté en 1972 et, d’après les calculs, l’ajout d’une seconde intercalaire est nécessaire tous les 18 mois. C’est ce que les prochaines moutures de Windows 10 et Windows Server se chargeront d’effectuer pour coller avec des exigences formulées par des organismes de régulation internationaux.
La firme de Redmond a publié un visuel de la manière dont cette soixante et unième (61e) seconde sera insérée. Notez le passage non pas de 4:59:59 à 5:00:00, mais de 4:59:59 à 4:59:60, ce, lorsqu’un top départ est donné via Windows Update ou au travers de NTP . Microsoft a choisi de délaisser une autre implémentation qui consiste en fragmenter la seconde additionnelle et à l’insérer à l’heure standard en étalant le processus sur des jours.
Les changements sont de nature à modifier les habitudes des développeurs. « Certains frameworks sont ne prennent pas les secondes intercalaires en charge. Par exemple, le framework .NET fait usage de sa logique interne pour déterminer l’heure. Cette dernière ne prend pas les secondes intercalaires en compte. Donc après l’introduction d’une de ces dernières, la sortie de la fonction System.DateTime.Now.ToString() sera en avance d’une seconde de celle de l’heure système. (Nous travaillons à corriger ce détail avec l’équipe .NET) », prévient le géant technologique.
La firme de Redmond également publié deux ossatures de code qui permettent de bien appréhender le processus de prise en charge des secondes intercalaires au sein d’une application UWP .
Version qui requiert le dernier kit de développement Windows 10 :
Version qui ne s’appuie pas sur le SDK Windows 10 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 #include "Windows.h" #include <iostream> int wmain() { std::cout << "Testing Leap Second update actually shows '60' in the seconds...\n"; DWORD ErrorCode; BOOL Success; ULONG Flags; PROCESS_LEAP_SECOND_INFO LeapSecondInfo; // // Opt in to Leap Seconds // ZeroMemory(&LeapSecondInfo, sizeof(LeapSecondInfo)); Flags |= PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND; LeapSecondInfo.Flags = Flags; Success = SetProcessInformation(GetCurrentProcess(), ProcessLeapSecondInfo, &LeapSecondInfo, sizeof(LeapSecondInfo)); if (!Success) { ErrorCode = GetLastError(); fprintf(stderr, "Set Leap Second Info failed: %d\n", ErrorCode); } // print current time 60 times with sleep interval of 950ms SYSTEMTIME lt; for (int i = 0; i < 60; i++) { GetLocalTime(<); printf("the local time is %d/%d/%dT%02d:%02d:%02d\n", lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond); Sleep(950); } }
La prise en charge des secondes intercalaires s’inscrit dans une mouvance plus vaste d’amélioration des outils liés à la gestion du temps au sein des OS de Microsoft. Sous la Redstone 5 et Windows Server 2019, NTP cède sa place à PTP – Precision Timing Protocol. En sus, ces versions de systèmes d’exploitation arrivent avec une fonctionnalité logicielle de réduction des retards de traitement des paquets réseaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 #include "Windows.h" #include <iostream> typedef struct _PROCESS_LEAP_SECOND_INFO { ULONG Flags; ULONG Reserved; } PROCESS_LEAP_SECOND_INFO, *PPROCESS_LEAP_SECOND_INFO; #define PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND 0x1 #define ProcessLeapSecondInfo 8 int wmain() { std::cout << "Testing Leap Second update actually shows '60' in the seconds...\n"; DWORD ErrorCode; BOOL Success; ULONG Flags; PROCESS_LEAP_SECOND_INFO LeapSecondInfo; // // Opt in to Leap Seconds // ZeroMemory(&LeapSecondInfo, sizeof(LeapSecondInfo)); Flags |= PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND; LeapSecondInfo.Flags = Flags; Success = GetProcessInformation( GetCurrentProcess(), (PROCESS_INFORMATION_CLASS) ProcessLeapSecondInfo, &LeapSecondInfo, sizeof(LeapSecondInfo)); if (!Success) { ErrorCode = GetLastError(); fprintf(stderr, "Set Leap Second Info failed: %d\n", ErrorCode); } // print current time 60 times with sleep interval of 950ms SYSTEMTIME lt; for (int i = 0; i < 60; i++) { GetLocalTime(<); printf("the local time is %d/%d/%dT%02d:%02d:%02d\n", lt.wYear, lt.wMonth, lt.wDay, lt.wHour, lt.wMinute, lt.wSecond); Sleep(950); } }
Source : Billet Microsoft
Et vous ?
Comment accueillez-vous la prise en charge des secondes intercalaires au sein de ces systèmes d’exploitation de Microsoft ?
Quels avantages (inconvénients) introduit-t-elle dans vos tâches de développement ?
Voir aussi :
Windows 10 Redstone 5 est disponible pour les « Skip Ahead Insiders », cette nouvelle version embarque plusieurs améliorations et correctifs
Windows 10 Redstone 5 : la build 17643 est disponible et fait du copier-coller un atout supplémentaire du sous-système Linux
Windows 10 Redstone 5 : la build 17661 fait de Screen Sketch une application indépendante pour une meilleure expérience de capture d'écran
Windows 10 Redstone 5 : la Buid 17711 apporte des améliorations à Microsoft Edge et permet désormais d'activer le HDR
Windows 10 Redstone 5 : la build 17704 apporte le blocage de la lecture auto dans Edge et supprime la technologie de gestion de fenêtre Sets
Partager