Les horodatages Unix changent-ils d'un fuseau horaire à l'autre?

136

Comme le demande le sujet; les horodatages UNIX changent-ils dans chaque fuseau horaire?

Par exemple, si j'envoyais une demande à un autre e-mail à l'autre bout du monde en disant: "Envoyez un e-mail lorsque l'heure est 1397484936" , est-ce que l'horodatage de l'autre serveur aurait 12 heures de retard sur le mien?

Ben Poulson
la source
7
Non, c'est le nombre de secondes qui se sont écoulées depuis un moment précis.
Niklas B.

Réponses:

228

La définition de l'horodatage UNIX est indépendante du fuseau horaire. L'horodatage correspond au nombre de secondes (ou millisecondes) écoulées depuis un point absolu dans le temps, minuit du 1er janvier 1970 à l'heure UTC. (UTC est l'heure moyenne de Greenwich sans les ajustements de l'heure d'été.) Quel que soit votre fuseau horaire, un horodatage représente un moment qui est le même partout. Bien sûr, vous pouvez convertir en une représentation de fuseau horaire local (l'heure 1397484936 est telle et telle heure locale de New York, ou une autre heure locale de Djakarta) si vous le souhaitez.

L'article à http://en.wikipedia.org/wiki/Unix_time est assez impressionnant si vous souhaitez une lecture plus longue.

RobP
la source
19
Dans mon autre vie, je suis instructeur de vol. Nous utilisons UTC (également appelé "heure zouloue") pour les heures de décollage et d'atterrissage, de sorte que la différence entre les heures soit une mesure précise de la durée du vol, sans avoir à considérer dans quel fuseau horaire se trouvent les aéroports de départ et d'arrivée. En effet, j'ai pris des vols qui ont commencé à l'heure d'été et se sont terminés après, ou vice versa!
RobP
19
+1 à cette réponse. Pour ajouter une idée qui pourrait aider à clarifier: l'horodatage lui-même n'est pas UTC, l'horodatage est un nombre de (milli) secondes passé à partir d'un point de référence dans le temps. Le point de référence pour l'horodatage Unix (l'époque Unix) est celui qui est UTC: 00:00:00 UTC 1970.01.01
Sandman
4
En s'appuyant sur la réponse de @Sandman, 1397484936 secondes depuis le début ne représentent que 1397484936 secondes. Sans entrer dans d'autres sciences, 1397484936 secondes se sont écoulées à ce moment-là partout dans le monde. Lorsque ces 1397484936 secondes se sont écoulées, il peut être 16 h 00 min 16 h 00 à New York, 21 h 00/21 h 00 à Londres, qui correspond aux fuseaux horaires
conrad10781
1
@RobP Ce n'est pas vrai. UNIX n'est pas indépendant du fuseau horaire, vous l'avez dit vous-même in UTC time. Il y a deux décalages, a raw offsetet DST offset. Par exemple, America/New_Yorkle décalage brut est -18000, et le décalage DST est 3600, donc à partir de n'importe quel horodatage UNIX, vous devez faire le calcul UNIX + offset + dstOffsetpour obtenir l'horodatage de New York.
Max
15

L'heure Unix est définie comme le nombre de secondes qui se sont écoulées depuis 00:00:00 temps universel coordonné ( UTC ), jeudi 1er janvier 1970. La réponse est donc non

Harry
la source
5

SI les deux ordinateurs sont correctement configurés avec leurs horloges définies pour le fuseau horaire et les valeurs UTC corrects, ils doivent renvoyer la même valeur.
Bien sûr, c'est un gros SI. Il y a presque certainement une différence d'au moins seconde, le plus souvent de minutes entre l'heure indiquée par deux ordinateurs. Et de nombreux ordinateurs sont configurés pour avoir des paramètres de fuseau horaire incorrects et indiqueront leur heure locale lorsqu'on leur demande un horodatage plutôt que UTC.

Et c'est là que réside la différence entre la théorie et la pratique. En théorie, tout est pareil, en pratique vous ne devriez jamais vous y fier.

jwenting
la source
3

Les horodatages Unix ne changent pas selon les fuseaux horaires , ils sont créés dans le but d'avoir une heure standard à travers le globe.

REMARQUE: - Les horodatages sont calculés sur la base de l'heure actuelle dans l'ordinateur, ne vous fiez donc pas à eux jusqu'à ce que et à moins que vous ne soyez très sûr des réglages de l'heure dans les machines participantes.

humble_wolf
la source
3

Quelqu'un a déclaré que "UTC est l'heure de Greenwich sans ajustement de l'heure d'été". C'est tout simplement faux. GMT n'a pas d'heure Dayllight Savings. GMT est mesuré à Greenwich, en Angleterre (à l'Observatoire naval) [0 longitude, mais pas 0 lattitude]. L'UTC est mesuré à l'équateur [0 longitude et 0 lattitude - qui se trouve dans l'océan au large du coût de l'Afrique].

Quelle différence cela fait? Cela ne fait aucune différence en termes de "quelle heure est-il?" Cela fait cependant une différence en termes de calcul d'une année. Maintenant, vous penseriez qu'une année serait mesurée en fonction de l'emplacement du centre (le noyau) de la terre, n'est-ce pas? Lorsque le noyau terrestre est de retour au même endroit qu'il y a environ 365 jours, cela fait un an. Ce n'est pas mesuré de cette façon. Il est mesuré par un emplacement spécifique sur la terre revenant au même endroit (par rapport au soleil) qu'il était il y a ~ 365 jours. Mais la période d'un jour et d'un an ne se divise pas également. Une fois que la terre est revenue à peu près là où elle était il y a un an, la terre ne fait plus face à la même direction qu'elle était l'année dernière, de sorte que cet endroit sur terre ne fait pas face à la même direction qu'il y a un an. Être plus au nord, Greenwich ne va pas revenir au même endroit (par rapport au soleil) qu'il était l'année dernière à la même époque que 0 Lat / 0 Long. Donc, si vous basez la définition sur Greenwith vs 0/0, vous obtenez une réponse, quoique légèrement différente, à la question «combien de jours sont dans une année». Pour le dire autrement, quand un endroit donné sur la terre revient là où il était il y a un an (par rapport au Soleil), le noyau de la terre n'est pas au même endroit qu'il y a un an, alors quel endroit vous choisissez des choses parce que le noyau de la terre va être dans un endroit différent (par rapport au soleil) de ce qu'il était il y a un an, si vous choisissez un endroit différent sur la terre. quoique légèrement, réponse différente à la question "combien de jours sont dans une année". Pour le dire autrement, quand un endroit donné sur la terre revient là où il était il y a un an (par rapport au Soleil), le noyau de la terre n'est pas au même endroit qu'il y a un an, alors quel endroit vous choisissez des choses parce que le noyau de la terre va être dans un endroit différent (par rapport au soleil) de ce qu'il était il y a un an, si vous choisissez un endroit différent sur la terre. quoique légèrement, réponse différente à la question "combien de jours sont dans une année". Pour le dire autrement, quand un endroit donné sur la terre revient là où il était il y a un an (par rapport au Soleil), le noyau de la terre n'est pas au même endroit qu'il y a un an, alors quel endroit vous choisissez des choses parce que le noyau de la terre va être dans un endroit différent (par rapport au soleil) de ce qu'il était il y a un an, si vous choisissez un endroit différent sur la terre.

Ni UTC ni GMT n'ont l'heure d'été. Heure Europe / Londres, le fuseau horaire dans lequel réside Greenwich. Mais pas GMT. GMT est ce que les Américains appelleraient une "heure standard" - c'est-à-dire sans heure d'été.

Pour revenir à la question, Epoch time n'a techniquement pas de fuseau horaire. Il est basé sur un moment particulier, qui se trouve juste à s'aligner sur une heure UTC "paire" (au début exact d'une année et d'une décennie, etc.). Si ce concept ne s'intègre pas bien dans votre cerveau, et si cela aide à penser que l'heure de l'époque est en UTC, allez-y. Vous êtes en bonne compagnie et dans le grand schéma des choses, cela n'a vraiment pas d'importance. Vous voyez jamais ces poursuites judiciaires où somoene reçoit 1 $. C'est une sorte de verdict "vous avez raison, mais cela n'a pas vraiment d'importance". Si quelqu'un vous poursuivait pour avoir dit que l'heure de l'époque est dans le fuseau horaire UTC, il gagnerait 1 $. Cela ne leur achèterait pas une tasse de café dans n'importe quel Starbucks dans n'importe quel fuseau horaire de la planète.

Damoclès
la source