526 votes

Pourquoi le 1/1/1970 est-il le "temps de l'époque" ?

Pourquoi est-ce que

1er janvier 1970 00:00:00

considéré comme l temps de l'époque ?

27 votes

Je ne sais pas pourquoi on a pensé que c'était subjectif. L'heure "d'époque" est un système d'horodatage standard.

0 votes

N.b. cette question a été postée par @phoenix, j'ai juste corrigé la grammaire.

7 votes

Aujourd'hui, c'était il y a 380 000 heures

488voto

Matt Howells Points 20751

Les premières versions d'unix mesuraient le temps système par intervalles de 1/60 s. Cela signifie qu'un nombre entier non signé de 32 bits ne pouvait représenter qu'un laps de temps inférieur à 829 jours. Pour cette raison, le temps représenté par le nombre 0 (appelé le époque ) devait se dérouler dans un passé très récent. Comme nous étions au début des années 1970, l'époque a été fixée à 1971-1-1.

Plus tard, l'heure du système a été modifiée pour s'incrémenter toutes les secondes, ce qui a porté à environ 136 ans l'intervalle de temps pouvant être représenté par un entier non signé de 32 bits. Comme il n'était plus aussi important d'extraire chaque seconde du compteur, l'époque a été arrondie à la décennie inférieure, devenant ainsi 1970-1-1. On peut supposer qu'elle était considérée comme un peu plus propre que 1971-1-1.

Notez qu'un fichier 32 bits signé Un nombre entier utilisant 1970-1-1 comme époque peut représenter des dates allant jusqu'à 2038-1-19 date à laquelle il se transformera en 1901-12-13.

38 votes

Est-ce que 1/60 a quelque chose à voir avec la fréquence du réseau électrique américain ?

68 votes

C'est la fréquence de l'un des oscillateurs des cartes système utilisées à l'époque. Il n'était pas nécessaire que l'oscillateur soit à 60 Hz puisqu'il fonctionnait en courant continu, mais il était probablement bon marché d'utiliser ce qui était le plus courant à l'époque, et les téléviseurs étaient alors produits en masse...

19 votes

En fait, à l'époque, il était très courant que les horloges des ordinateurs ainsi que les RTC soient synchronisées avec la forme d'onde du secteur américain car elle était (est ?) très fiable. Elle était multipliée pour obtenir l'horloge du processeur, et divisée pour obtenir les secondes pour le RTC.

59voto

Stu Thompson Points 16599

Histoire .

Les premières versions du temps Unix avaient un nombre entier de 32 bits s'incrémentant à une taux de 60 Hz, qui était celui de l'horloge système l'horloge système sur le matériel des les premiers systèmes Unix. La valeur 60 Hz apparaît encore dans certaines interfaces dans certaines interfaces logicielles. L'époque était également différait de la valeur actuelle. Le site première édition Manuel du programmeur d'Unix daté du 3 novembre 1971, définit le temps Unix comme "le temps depuis 00:00:00, le 1er janvier 1971, mesuré en soixantièmes de seconde. seconde".

2 votes

L'heure de l'époque est le 1er janvier 1970, et non le 1er janvier 1971.

3 votes

@SteveHarrison C'est vrai, mais ça n'a pas commencé comme ça.

19voto

Basil Bourque Points 8938

Date de référence de l'époque

Un site date de référence de l'époque est un point sur la ligne de temps à partir duquel on compte le temps. Les moments avant ce point sont comptés avec un nombre négatif, les moments après sont comptés avec un nombre positif.

De nombreuses époques en cours

Pourquoi le 1er janvier 1970 00:00:00 est-il considéré comme le temps de l'époque ?

Non, pas du tout. el époque, un époque. Il existe plusieurs époques utilisées .

Ce choix d'époque est arbitraire .

Les principaux systèmes informatiques et les bibliothèques utilisent au moins l'un des éléments suivants deux douzaines d'époques différentes . L'une des époques les plus populaires est communément appelée Temps Unix en utilisant le moment UTC 1970 que vous avez mentionné.

Bien qu'il soit populaire, Unix Time's 1970 n'est peut-être pas le le plus commun. On pourrait également citer le 0 janvier 1900 pour les innombrables feuilles de calcul Microsoft Excel et Lotus 1-2-3, ou le 1er janvier 2001 utilisé par le cadre Cocoa d'Apple dans plus d'un milliard de machines iOS/macOS dans le monde, dans d'innombrables applications. Ou peut-être le 6 janvier 1980, utilisé par GPS des appareils ?

Nombreuses granularités

Les différents systèmes utilisent une granularité différente pour compter le temps.

Même ce que l'on appelle le "temps Unix" varie, certains systèmes comptant des heures entières. secondes et un peu de comptage millisecondes . De nombreuses bases de données, comme Postgres, utilisent microsecondes . Certains, tels que les java.time en Java 8 et plus, utilisez nanosecondes . Certains utilisent encore d'autres granularités.

ISO 8601

En raison de la grande variabilité de l'utilisation d'une référence d'époque et des granularités, il est généralement préférable d'éviter de communiquer les moments comme un compte à partir d'une époque. Entre l'ambiguïté de l'époque et de la granularité, et l'incapacité des humains à percevoir des valeurs significatives (et donc à ne pas voir les valeurs boguées), utilisez du texte en clair plutôt que des chiffres.

El ISO 8601 fournit un ensemble complet de formats pratiques et bien conçus pour exprimer les valeurs de date et d'heure sous forme de texte. Ces formats sont faciles à analyser par la machine et à lire par les humains, quelle que soit leur culture.

Il s'agit notamment de :

11voto

Dawie Strauss Points 1576

http://en.wikipedia.org/wiki/Unix_time#History explique un peu les origines du temps Unix et l'époque choisie. La définition de l'heure Unix et de la date de l'époque a subi quelques changements avant de se stabiliser sur ce qu'elle est maintenant.

Mais il ne dit pas pourquoi exactement le 1/1/1970 a été choisi en fin de compte.

Extraits notables de la page Wikipedia :

El première édition Le manuel du programmeur d'Unix daté du 3 novembre 1971 définit le temps Unix comme "le temps depuis 00:00:00, le 1er janvier", 1971 mesurée en soixantièmes de seconde".

En raison de la portée limitée, l'époque était redéfini plus d'une fois avant que le taux ne passe à 1 Hz et que l'époque ne soit fixée à sa valeur actuelle.

Plusieurs problèmes ultérieurs, y compris la complexité de la présente définition, résultent du fait que le temps Unix a été défini progressivement par l'usage plutôt que d'être entièrement défini au départ.

-11voto

PaulJWilliams Points 11641

Réponse courte : Pourquoi pas ?

Réponse plus longue : Le temps lui-même n'a pas vraiment d'importance, tant que tous ceux qui l'utilisent sont d'accord sur sa valeur. Comme 1/1/70 est utilisé depuis si longtemps, son utilisation rendra votre code aussi compréhensible que possible pour le plus grand nombre de personnes possible.

Il n'y a pas de grand mérite à choisir une époque arbitraire juste pour être différent.

1 votes

Mais pourquoi 1970 est choisi comme année.

42 votes

Parce qu'Unix a été développé en 1969 et commercialisé pour la première fois en 1971 et qu'il était donc raisonnable de supposer qu'aucune machine ne devrait représenter une heure système antérieure à 1970-01-01-00:00:00.

3 votes

En tant que développeur de jeux de simulation historique, il semble assez stupide que les concepteurs de certains objets temporels aient tendance à supposer que tous les programmes ne voudront représenter que des dates dans le futur ou le passé récent. Bien sûr, nous pouvons programmer nos propres représentations, ou travailler avec un facteur d'ajustement, mais quand même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X