Tech Help
Unix Timestamp: секунди наспроти милисекунди — зошто датумот покажува 1970
Ако Unix timestamp стане датум близу 1970, често секундите се прочитани како милисекунди. Како да ги разликувате единиците.
Ако Unix timestamp даде датум близу 1970, вредноста често се толкува во погрешна единица.
Unix timestamp обично користи секунди, а JavaScript Date обично милисекунди.
Современ 10-цифрен timestamp често се секунди, 13-цифрен често милисекунди. Ако единиците не се совпаѓаат, може да треба множење или делење со 1000.
Претворивте timestamp и завршивте во јануари 1970. Часовникот речиси никогаш не е расипан. Бројот е прочитан како милисекунди иако бил во секунди — или обратно.
Што е Unix timestamp?
Unix timestamp го мери времето од Unix epoch: 1970-01-01 00:00:00 UTC. Обично користи цели секунди. Истиот миг може да се чува и во милисекунди (секунди × 1000). Самиот број не ја означува единицата.
Секунди наспроти милисекунди: разлика ×1000
Една секунда е 1000 милисекунди. Споредете 1720000000 со 1720000000000. Ако првото се секунди, а второто милисекунди, тоа е истиот миг. Прочитајте го првото како милисекунди и датумот скока кон 1970.
Овие UTC резултати се пресметани од броевите погоре, не се претпоставка.
| Вредност | Веројатна единица | Толкување (UTC) |
|---|---|---|
| 1720000000 | Секунди | Современ датум како секунди: 2024-07-03 09:46:40 UTC |
| 1720000000000 | Милисекунди | Истиот миг како милисекунди: 2024-07-03 09:46:40 UTC |
| 1720000000 како милисекунди | Погрешна единица | Датум близу 1970: 1970-01-20 21:46:40 UTC |
Зошто мојот timestamp покажува 1970?
Ако вредност во секунди се третира како милисекунди, бројот е 1000 пати премал. JavaScript тогаш брои само краток распон по Unix epoch, па датумот останува во 1970:
const seconds = 1720000000;
new Date(seconds);
// 1970-01-20 21:46:40 UTC
new Date(seconds * 1000);
// 2024-07-03 09:46:40 UTC
Тој датум од 1970 е epoch плус околу две недели. Помножете ги секундите со 1000 пред да ги дадете на Date.
- СЕКУНДИ
- 1720000000
- МИЛИСЕКУНДИ
- 1720000000000
- Вредност во секунди
- Погрешно третирана како милисекунди
- Датум близу 1970
Ако резултатот е близу 1970, проверете ја единицата на timestamp пред да ја истражувате временската зона.
Дали 10 цифри се секунди, а 13 милисекунди?
За денешни датуми 10 цифри често се секунди, а 13 често милисекунди. Тоа е брз показател, не правило за проверка. Бројот на цифри се менува со временскиот опсег, а некои API чуваат микросекунди или наносекунди. Потврдете ја единицата со документација или датум што има смисла.
Зошто ова толку често се случува во JavaScript
Во JavaScript бројчениот Date е милисекунди од epoch. Многу бекенди, бази и Unix алатки сè уште чуваат секунди. Да се дадат секунди директно во Date е честа грешка:
const unixSeconds = 1720000000;
const wrong = new Date(unixSeconds);
const correct = new Date(unixSeconds * 1000);
wrong е близу 1970 (1970-01-20 21:46:40 UTC). correct е тој современ миг (2024-07-03 09:46:40 UTC).
Други системи користат други единици
Други јазици, API и бази може да користат секунди или милисекунди. Некои чуваат микросекунди или наносекунди. Не претпоставувајте дека јазик секогаш користи една единица — видете ја документацијата. Ако бројот е во JSON, Форматирање и споредба на JSON го прави полето читливо; единицата сепак нема да ја каже.
Како да знам која единица ја користи мојот timestamp?
Поминете ги овие проверки по ред. Само бројот на цифри не е доволен.
- Проверете ја документацијата на API или базата.
- Погледнете го приближниот број цифри.
- Споредете ја вредноста со веродостоен современ timestamp.
- Испробајте ја вредноста како секунди и како милисекунди.
- Проверете дали добиениот датум има смисла.
Ако едно толкување падне во 1970, а другото на датум што го препознавате, причината е неусогласеност на единиците.
Чести грешки со Unix timestamp
- Секунди протолкувани како милисекунди. Датумот се урива кон 1970, како во примерот погоре.
- Милисекунди протолкувани како секунди. Датумот скока далеку во иднината, или претворањето не успева.
- Множење со 1000 двапати. Вредност што веќе била во милисекунди станува огромна и датумот скока векови напред.
- Делење со 1000 двапати. Вредност во секунди повторно се собира, повторно близу 1970.
- Да се обвинува временската зона. Зоната може да ги помести часовите или календарскиот ден. Не пренесува современ timestamp во 1970.
- Форматиран датум да се третира како Unix timestamp. Вредност како 2024-07-03T09:46:40Z не е број epoch. Рашчленете ја како датум, не како секунди.
Дали временската зона го предизвикува проблемот 1970?
Обично не. Зоната може да го смени прикажаниот часовник и близу полноќ календарскиот датум. Не претвора современ Unix timestamp во 1970. Ако резултатот е 1970, прво проверете секунди наспроти милисекунди.
Претворете и проверете Unix timestamp
NEXNARA Претворувач на датум и време може да претвори Unix timestamp во прелистувачот.
Залепете Unix секунди или милисекунди, користете го тековниот timestamp, видете UTC и локално време, претворете зони и форматирајте датум. Автоматското препознавање често ги третира 10 цифри како секунди, а 13 како милисекунди; единицата сепак можете да ја изберете.
Самото претворање се случува во прелистувачот. Алатката не испраќа датуми ни timestamp на сервер на NEXNARA. Рекламите и другите функции на страницата сè уште ја користат мрежата; тоа е одвоено од претворањето.
Треба да проверите Unix timestamp? Отворете Претворувач на датум и време и споредете секунди со милисекунди.
FAQ
Зошто мојот Unix timestamp покажува 1970?
Често се секунди прочитани како милисекунди. JavaScript тогаш обработува многу помал број, па датумот паѓа веднаш по 1970-01-01 00:00:00 UTC. Помножете ги секундите со 1000 и претворете повторно.
Дали Unix timestamp се секунди или милисекунди?
Обично секунди. Многу веб API и JavaScript Date користат милисекунди. Секогаш проверете што документира тој систем. Некои системи користат микросекунди или наносекунди.
Како да ги претворам секундите во милисекунди?
Помножете со 1000. 1720000000 секунди се 1720000000000 милисекунди. Во другата насока поделете со 1000.
Зошто JavaScript Date користи милисекунди?
Бројчениот timestamp на Date во JavaScript е дефиниран како милисекунди од Unix epoch. Затоа new Date(unixSeconds) е погрешно кога unixSeconds се Unix секунди.
Дали 10-цифрен timestamp секогаш е секунди?
Не. За денешни датуми често да, а 13 цифри често се милисекунди. Бројот на цифри е показател, не правило. Потврдете со документација или датум што има смисла.
Дали Unix timestamp содржи временска зона?
Не. Unix timestamp е миг броен од 1970-01-01 00:00:00 UTC. Зоните влијаат на приказот, не на самиот број.