Конвертор на Epoch време
Преобразувайте Unix времеви отпечатъци в UTC дати или превърнете дата в epoch секунди.
Как да използвате този конвертор на епохално време
- Изберете режим на конвертиране
Изберете „Епоха към дата“ или „Дата към епоха“ в полето „Режим на конвертиране“.
- За епоха към дата
Въведете Unix времевото клеймо в секунди в полето „Епохално времево клеймо (секунди)“.
- За дата към епоха
Изберете датата в „Календарна дата“, след което задайте „Час (UTC)“, „Минута (UTC)“ и „Секунда (UTC)“ според нуждите.
- Прочетете резултата
Калкулаторът показва UTC стойността, Unix милисекунди и деня от седмицата.
Как работи този конвертор на епохално време
Този конвертор на епохално време превежда между Unix времеви отпечатъци и четливи за човека UTC дати. Unix времето — наричано още POSIX време или епохално време — брои броя на секундите, изминали от Unix епохата, дефинирана като полунощ UTC на 1 януари 1970 г. (1970-01-01T00:00:00Z). Това представяне с едно цяло число е де факто стандартът за съхранение и предаване на времеви отпечатъци в бази данни, API, лог файлове, JWT токени и практически всеки модерен език за програмиране. Конверторът поддържа и двете посоки: въвеждането на числов времеви отпечатък връща съответната UTC дата, ден от седмицата и еквивалент в милисекунди, докато въвеждането на календарна дата и час връща стойността на епохата в секунди и милисекунди.
Unix време = изминали секунди от 1970-01-01T00:00:00Z За да преобразувате Unix времевото клеймо 1 700 000 000 в дата: започвайки от 1970-01-01 00:00:00 UTC, добавете 1 700 000 000 секунди. Това се равнява на 19 675 дни, 17 часа, 46 минути и 40 секунди. Получената UTC дата е 2023-11-14 в 22:13:20 UTC, което се пада във вторник. Еквивалентът в милисекунди е 1 700 000 000 000. Обратно, въвеждането на 14 ноември 2023 г. в 22:13:20 UTC връща епохална стойност от точно 1 700 000 000.
Времевият отпечатък 0 се преобразува в 1970-01-01 00:00:00 UTC (четвъртък). Еквивалентът в милисекунди е 0.
Времевият отпечатък 1,704,000,000 се преобразува в 2023-12-31 12:00:00 UTC (неделя). Въвеждането на тази дата и час в режим „Дата към епоха“ връща 1,704,000,000.
- ✓ Всички изчисления са в UTC. Преобразуванията в местно време изискват прилагане на съответното отместване на часовата зона след преобразуването.
- ✓ Високосните секунди не се броят. Подобно на POSIX, този конвертор третира всеки ден като точно 86 400 секунди, което съответства на поведението на повечето програмни езици и операционни системи.
- ✓ Отрицателните клейма за време представляват дати преди епохата (1 януари 1970 г.). Например −86400 съответства на 31 декември 1969 г.
- ✓ Клеймата за време в милисекунди трябва да бъдат разделени на 1000 преди въвеждане; конверторът приема секунди като вход и показва еквивалента в милисекунди в резултатите.
- JavaScript's Date.now() и Java's System.currentTimeMillis() връщат милисекунди, а не секунди — разделете на 1 000, преди да въведете стойността тук, или използвайте изхода в милисекунди за сравнение.
- Проблемът с годината 2038 засяга 32-битовите времеви клейма със знак, които ще препълнят на 19 януари 2038 г. в 03:14:07 UTC. Повечето съвременни системи са преминали към 64-битови времеви клейма.
- Когато дебъгвате API отговори или лог файлове, следете за времеви клейма, които изглеждат изместени с точно 3 600 или 7 200 секунди — това обикновено показва, че някъде по веригата е приложено (или пропуснато) отместване на часовата зона.
- Епохалното време винаги нараства монотонно (пренебрегвайки корекциите за високосни секунди), което го прави идеално за сортиране на събития, изчисляване на продължителност и генериране на уникални идентификатори, базирани на времето.
- IEEE Std 1003.1 (POSIX) — дефиниция за секунди от епохата
- Произход на Unix епохата — документация на The Unix Heritage Society и Bell Labs
- RFC 3339 — Дата и час в интернет: Времеви клейма
Какво представляват Unix времевите отпечатъци?
Unix времевият отпечатък е броят секунди, изминали от полунощ UTC на 1 януари 1970 г. — епохата на Unix. Това цяло число е де факто стандартът за представяне на време в бази данни, API, лог файлове и повечето езици за програмиране. Тъй като е независим от часовата зона и монотонно нарастващ, той опростява сортирането, изчисляването на продължителност и сравненията по време. JavaScript функцията Date.now() и много API връщат милисекунди (1000 × секунди), така че разделете на 1000, преди да въведете стойност в милисекунди тук. Отрицателните времеви отпечатъци представляват дати преди 1970 г.; например −86400 е точно един ден преди епохата.
Случаи на употреба на епохалното време за разработчици
Разработчиците използват Unix времеви отпечатъци при съхраняване на времена на събития в бази данни, сериализиране на дати в JSON API, генериране на времеви кеш ключове и отстраняване на грешки в лог записи. Колоните в базите данни често съхраняват времеви отпечатъци като цели числа за ефективно индексиране и заявки за диапазон. Отговорите на API често връщат епохални секунди или милисекунди, за да се избегне неяснота в часовата зона. При отстраняване на грешки, конвертирането на необработен времеви отпечатък от лог или JWT твърдение в четима от човека дата бързо разкрива дали стойността е правилна или е изместена от фактор на часовата зона. Епохалното време се използва също за ограничаване на честотата, изтичане на сесии и генериране на сортируеми уникални идентификатори в разпределени системи.
Често задавани въпроси за конвертора на епохално време
Какво е Unix епоха?
Unix епохата е референтната точка, от която се измерва Unix времето: полунощ UTC на 1 януари 1970 г. (1970-01-01T00:00:00Z). Времево клеймо 0 съответства на този точен момент.
Защо моето JavaScript времево клеймо има повече цифри?
JavaScript Date.now() връща милисекунди от епохата, а не секунди. Разделете на 1000, за да конвертирате във формат в секунди, използван от този инструмент, или сравнете директно с изхода в милисекунди.
Мога ли да въведа отрицателно времево клеймо?
Да. Отрицателните стойности представляват дати преди епохата. Например −86400 съответства на 1969-12-31T00:00:00Z, точно един ден преди епохата.
Поддържа ли това високосни секунди?
Не, и това съответства на стандарта POSIX. POSIX времето приема, че всеки ден е точно 86 400 секунди. 27-те високосни секунди, въведени от 1972 г. насам, не са представени индивидуално, което означава, че UTC и Unix времето могат да се различават с до една секунда при границите на високосните секунди.
Какво представлява проблемът на 2038 година?
Системите, съхраняващи Unix време като 32-битово цяло число със знак, ще препълнят на 19 януари 2038 г. в 03:14:07 UTC, преминавайки към голямо отрицателно число и генерирайки дати от 1901 г. Повечето съвременни платформи вече използват 64-битови времеви клейма, които няма да препълнят в продължение на над 290 милиарда години.