Конвертор на Unix времеви печати в дати: Поддръжка на 12/24-часов формат
Конвертирайте Unix времеви печати в четими за човека дати и часове. Изберете между 12-часов и 24-часов формат с този прост, удобен за потребителя инструмент за конвертиране.
Конвертор на Unix времеви маркер
Unix времевият печат е броят на секундите от 1 януари 1970 г. (UTC)
Конвертирана дата и час
Какво е Unix времеви печат?
Unix времевият печат е броят на секундите, изминали от 1 януари 1970 г. (полунощ UTC/GMT), без да се броят високосните секунди. Той се използва широко в Unix системи и програмни езици за изчисления с дати и часове.
Документация
Конвертор на Unix времеви отметки към дата
Unix времевата отметка е число, което представя конкретен момент във времето. Тя отчита всички цели секунди, изминали от полунощ по UTC на 1 януари 1970 г. — момент, наречен Unix епоха. Този инструмент преобразува Unix времева отметка в календарна дата и час, показани във формат с 24 или 12 часа.
Как се преобразува Unix времева отметка в дата
Основната формула е проста:
дата = Unix епоха (1970-01-01, 00:00:00 UTC) + времева отметка (в секунди)
За да се преобразува необработен брой секунди в дата, към 1 януари 1970 г. се добавят съответният брой секунди. След това резултатът трябва да се раздели на година, месец, ден, час, минута и секунда. Именно това разделяне е трудната част, защото трябва да се отчетат високосните години, които добавят един ден към февруари, както и различната продължителност на месеците. Повечето езици за програмиране имат вградена функция за дата, която прави това автоматично, така че никой не трябва да изчислява всичко стъпка по стъпка.
Решен пример
Да вземем времевата отметка 1609459200.
- Разделете на броя секунди в едно денонощие: 1 609 459 200 ÷ 86 400 = 18 628 дни.
- Пребройте 18 628 дни напред от 1 януари 1970 г., като по пътя отчитате високосните години.
- Броенето стига до 1 януари 2021 г..
Следователно 1609459200 се преобразува в петък, 1 януари 2021 г., 00:00:00 UTC. Денят от седмицата, петък, се получава от същото преброяване на дните.
Конверторът показва резултата в часовата зона, която браузърът ви съобщава, а не в UTC. Читател в Ню Йорк вижда същата времева отметка като четвъртък, 31 декември 2020 г., 19:00:00, защото през този ден Ню Йорк е бил с пет часа назад спрямо UTC.
Времевата отметка може да бъде и отрицателна, което представлява дата преди 1970. Например -86400 е точно един ден преди епохата: 31 декември 1969 г., 00:00:00 UTC.
Точност на времевия печат: секунди, милисекунди и микросекунди
Не всяка система измерва времето в секунди. Този конвертор проверява колко цифри има времевата отметка и определя нейната прецизност:
| Цифри | Прецизност | Пример |
|---|---|---|
| 10 | Секунди | 1609459200 |
| 13 | Милисекунди | 1609459200000 |
| 16 | Микросекунди | 1609459200000000 |
Отрицателната времева отметка съдържа един допълнителен знак заради знака минус, така че -1609459200 (11 знака, 10 цифри) все още се разчита като секунди. Всеки друг брой цифри се приема за секунди. Стойностите в милисекунди и микросекунди се разделят съответно на 1 000 или 1 000 000, преди да се приложи формулата за секунди по-горе.
Формат на часа с 12 или 24 часа
Конверторът предлага два начина за показване на часа от денонощието.
- 24-часовият формат брои часовете от 0 до 23, без обозначение AM или PM. Програмистите понякога го наричат военно време. 3:00 следобед се изписва като 15:00.
- 12-часовият формат брои часовете от 1 до 12, като добавя AM за периода от полунощ до обяд и PM за периода от обяд до полунощ. 15:00 във формат с 24 часа се преобразува в 3:00 PM.
Форматът с 24 часа е стандартен в по-голямата част от Европа, Латинска Америка и Азия, както и в научна, военна и медицинска среда навсякъде по света. Форматът с 12 часа остава обичаен в ежедневието в Съединените щати, Канада и няколко други англоезични държави.
Поддържан диапазон от дати
Този конвертор приема всяка времева отметка от -62135596800 до 253402300799. Това обхваща всички дати от 1 януари на година 1 до 31 декември 9999 г. в пролептичния григориански календар — съвременния календар, проектиран назад преди въвеждането му през 1582 г. Времевите отметки извън този диапазон се отхвърлят с грешка за диапазона.
Проблемът с година 2038
Много по-стари компютърни системи съхраняват Unix времева отметка като знаково 32-битово цяло число, което може да брои само до 2 147 483 647. Този брой секунди след епохата съответства на 19 януари 2038 г. в 03:14:07 UTC. След този момент непоправена 32-битова система се препълва, връща се към отрицателно число и отчита датата като намираща се в 1901 вместо в 2038 г. Това е известно като проблемът с година 2038. Той не засяга всяка система: съвременният софтуер, който съхранява времевите отметки като 64-битови числа или като обикновени числа, както прави JavaScript, може да представя дати хиляди години след 2038 г. без препълване.
Обичайни приложения на Unix времевите отметки
Unix времевите отметки се използват широко в компютърните системи, защото са компактни и лесни за сравняване или сортиране:
- Редовете в базите данни ги използват, за да записват кога даден запис е създаден или променен за последен път.
- Уеб сървърите ги използват в HTTP заглавки и бисквитки, за да управляват кеширането и изтичането на валидността.
- Регистрационните файлове отбелязват всяко събитие с такава стойност, за да могат записите да бъдат подредени по ред.
- Git и други системи за контрол на версиите записват така времето на комитите.
- Уеб API използват тези стойности, за да отбелязват кога са генерирани данните или кога са актуализирани за последен път.
Често задавани въпроси
Какво е Unix епохата? Unix епохата е полунощ по UTC на 1 януари 1970 г.. Това е нулевата точка, от която се броят всички Unix времеви отметки.
Включва ли Unix времевата отметка високосни секунди? Не. Unix времето отчита точно 86 400 секунди на денонощие и пренебрегва високосните секунди, които понякога се добавят към UTC, затова постепенно се разминава с астрономическото време.
Може ли времевият печат на Unix да бъде отрицателен? Да. Отрицателната стойност представлява дата преди 1 януари 1970 г..
Защо моята времева отметка има 13 цифри вместо 10?
Времева отметка с 13 цифри се измерва в милисекунди, а не в секунди. Date.now() в JavaScript и много уеб API връщат времеви отметки в милисекунди, поради което стойностите с 13 цифри са често срещани при разработката на уеб приложения.
Еднаква ли е Unix времевата отметка във всяка часова зона? Самото число не е свързано с никоя часова зона. То винаги отчита секундите от епохата по UTC. Преобразуването му в местна дата и час означава добавяне на отместването на съответната зона, поради което резултатът на този конвертор следва часовата зона на устройството, на което работи.
Коя е най-късната дата, с която този конвертор може да работи? 31 декември 9999 г. в 23:59:59 UTC, което съответства на времевата отметка 253402300799. Най-ранната е 1 януари на година 1 в 00:00:00 UTC, което съответства на времевата отметка -62135596800.