tl; dr datetime.datetime.now()
utilise l'horloge intégrée à votre ordinateur.
Les ordinateurs ont été en mesure de conserver une heure assez précise pendant beaucoup plus longtemps que l'Internet a existé.
Par exemple, les PC comportent ce qu'on appelle un real-time clock (RTC). Il est alimenté par batterie et peut conserver l'heure même lorsque l'ordinateur est éteint.
Fait intéressant, certains algorithmes distribués require very accurate clocks afin de fonctionner de manière fiable. La précision requise dépasse de loin tout ce qu'une simple horloge à oscillateur peut fournir.
En conséquence, les entreprises comme Google fonctionnent GPS et atomic horloges dans leurs centres de données (et même ceux qui ne sont pas sans problèmes potentiels, comme cela a été démontré, par exemple, on 26 January 2017, lorsque certaines horloges GPS ont été par 13 microsecondes pour dix heures).
Même si les centres de données sont connectés à Internet, ni le GPS ni les horloges atomiques ne nécessitent une connexion Internet pour fonctionner. En outre, someone doit garder toute cette infrastructure de temps Internet en cours d'exécution ... il ne peut pas être que tout le monde obtient leur temps "hors Internet". ;)
Maintenant que nous sommes sur le sujet de la répartition de l'heure à travers les réseaux informatiques, les principaux protocoles pour le faire sont NTP (Network Time Protocol) and PTP (Precision Time Protocol).
Pourquoi le code demanderaient une autre machine pour la date et l'heure de votre ordinateur, il sait? –
Eh bien, l'ordinateur sait comment sans connexion Internet? –
Parce qu'il a une horloge à l'intérieur? –