Чи змінюються часові позначки unix у часових поясах?


136

Як запитує суб'єкт; чи змінюються часові позначки UNIX у кожному часовому поясі?

Наприклад, якщо я надіслав запит на інший електронний лист з іншої сторони світу, кажучи: "Надіслати електронний лист, коли час 1397484936" , чи буде часова мітка іншого сервера на 12 годин меншою за мою власну?


7
Ні, це кількість секунд, що пройшли з певного моменту часу.
Ніклас Б.

Відповіді:


228

Визначення часової позначки UNIX не залежить від часового поясу. Часова позначка - це кількість секунд (або мілісекунд), минула з моменту абсолютного моменту часу, опівночі 1 січня 1970 року за UTC. (UTC - середній час за Грінвічем без коригування літнього часу.) Незалежно від вашого часового поясу, часова марка являє собою момент, який повсюдно однаковий. Звичайно , ви можете конвертувати туди і назад в місцеве представництво часового поясу (час 1397484936 є Таким- то місцевий час в Нью - Йорку, або яке -небудь інше по місцевим часом в Джакарті) , якщо ви хочете.

Стаття на веб-сайті http://en.wikipedia.org/wiki/Unix_time є досить вражаючою, якщо ви хочете більше читати.


19
В іншому житті я - інструктор польотів. Ми використовуємо UTC (також відомий як "зулуський час") для часу зльоту і посадки, так що різниця між часом - це точне вимірювання тривалості польоту, не враховуючи, в якому часовому поясі розташовані початковий і кінцевий аеропорти. Дійсно, я брав рейси, які починалися в літній час і закінчувалися після нього, або навпаки!
RobP

19
+1 до цієї відповіді. Щоб додати ідею, яка може допомогти уточнити: сама мітка часу не є UTC, часова марка - це кількість (мілі) секунд, пройдених від еталонного моменту часу. Орієнтиром для часової позначки Unix (епоха Unix) є той, що є UTC: 00:00:00 UTC 1970.01.01
Sandman

4
Подальше від відповіді @Sandman, 1397484936 секунд від початку, це саме 1397484936 секунд. Не потрапляючи в іншу науку, 1397484936 секунд пройшло в цей момент у будь-якій точці світу. Коли минують ці 1397484936 секунд, це може бути 16:00:00 у Нью-Йорку, 21:00 / 21:00 у Лондоні, місцевих часових поясах
conrad10781

1
@RobP Це неправда. UNIX не залежить від часового поясу, ви самі це сказали in UTC time. Є два компенсації, а raw offsetта DST offset. Наприклад, America/New_Yorkнеобмежене зміщення є -18000, а DST - зсув 3600, тому з будь-якої часової позначки UNIX вам потрібно зробити математику UNIX + offset + dstOffset, щоб отримати нью-йоркську часову позначку.
Макс

15

Час Unix визначається як кількість секунд, що минули з 00:00:00 Універсальний координований час ( UTC ), четвер, 1 січня 1970 р. Отже, відповідь - ні


5

Якщо обидва комп'ютери налаштовані правильно, їх годинник встановлений для правильних значень часового поясу та UTC, вони повинні повернути однакове значення.
Звичайно, це велике ІФ. Існує майже певна різниця принаймні секунди, частіше хвилин між часом, про який повідомляють два комп’ютери. І на багатьох комп’ютерах встановлено неправильні налаштування часового поясу, і вони повідомлять про свій місцевий час, коли запитують часову позначку, а не UTC.

І в цьому криється різниця між теорією та практикою. Теоретично все одно, на практиці ніколи не слід покладатися на це.


3

Часові позначки Unix не змінюються у часових поясах , вони створені для того, щоб мати стандартний час по всьому світу.

ПРИМІТКА: - Часові позначки розраховуються на основі поточного часу в комп'ютері, таким чином, не покладайтеся на них до тих пір, поки ви не впевнені в налаштуваннях часу на машинах-учасницях.


3

Хтось заявив, що "UTC - середній час за Грінвічем без коригування літнього часу". Це просто неправда. GMT не має літнього часу. GMT вимірюється в Грінвічі, Англія (у Військово-морській обсерваторії) [0 довготи, але не 0 широти]. UTC вимірюється на екваторі [0 довготи і 0 широти - що трапляється в океані за рахунок Африки].

Яка різниця? Це не має значення в термінах "який час доби?" Однак це має значення для розрахунку року. Тепер ви можете подумати, що рік буде вимірюватися залежно від місця розташування центру (ядра) землі, правда? Коли земне ядро ​​повернулося в ту саму локацію, що це було ~ 365 днів тому, минув рік. Це не вимірюється таким чином. Він вимірюється певним місцем на Землі, повертаючись до того самого місця (відносно сонця), яке було ~ 365 днів тому. Але період дня і року не ділиться рівномірно. Як тільки Земля повертається до того, де була рік тому, Земля не стикається в тому ж напрямку, що і минулого року, тому ця пляма на Землі не стикається в тому ж напрямку, що було рік тому. Знаходячись далі на північ, Грінвіч не збирається повертатися на те саме місце (відносно сонця), що минулого року в той самий час, коли 0 Lat / 0 Long. Отже, якщо ви базуєте визначення на Greenwith vs. 0/0, ви отримаєте, хоч і незначну, іншу відповідь на питання "скільки днів у році". Інакше кажучи, коли дана пляма на землі повертається туди, де вона була рік тому (відносно Сонця), ядро ​​землі не на тому самому місці, що було рік тому, то яка пляма Ви вибираєте справи, тому що ядро ​​землі буде знаходитися в іншому місці (відносно сонця), ніж це було рік тому, якщо ви виберете інше місце на землі. хоч і трохи, інша відповідь на питання "скільки днів у році". Інакше кажучи, коли дана пляма на землі повертається туди, де вона була рік тому (відносно Сонця), ядро ​​землі знаходиться не на тому самому місці, що було рік тому, і яке місце Ви вибираєте справи, тому що ядро ​​землі буде знаходитися в іншому місці (відносно сонця), ніж це було рік тому, якщо ви виберете інше місце на землі. хоч і трохи, інша відповідь на питання "скільки днів у році". Інакше кажучи, коли дана пляма на землі повертається туди, де вона була рік тому (відносно Сонця), ядро ​​землі знаходиться не на тому самому місці, що було рік тому, і яке місце Ви вибираєте справи, тому що ядро ​​землі буде знаходитися в іншому місці (відносно сонця), ніж це було рік тому, якщо ви виберете інше місце на землі.

Ні UTC, ні GMT не мають літнього часу. Час Європа / Лондон, часовий пояс, в якому проживає Грінвіч. Але GMT ​​- ні. GMT - це те, що американці називали б "стандартним часом" - тобто без літнього часу.

Повертаючись до питання, епохальний час технічно не має часового поясу. Він ґрунтується на конкретному моменті часу, який так само вирівнюється до "рівного" часу UTC (в точний початок року та десятиліття тощо). Якщо ця концепція не вписується у ваш мозок, і якщо вона допомагає думати про час епохи як про UTC, ідіть прямо вперед. Ви в хорошій компанії та в грандіозній схемі речей, це насправді не має значення. Ви коли-небудь бачили судові позови, в яких somoene присуджується $ 1. Це свого роду "ви маєте рацію, але насправді це не має значення" вирок. Якщо хтось подав до суду за те, що сказав, що епохальний час знаходиться в часовому поясі UTC, він виграє 1 долар. Це не купить їм чашку кави в жодному Starbucks в будь-якому часовому поясі на планеті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.