Tech Help
Unix Timestamp во датум: секунди, милисекунди и UTC објаснети
Претворете Unix timestamp во датум. Погледнете секунди наспроти милисекунди, UTC наспроти локално време, ISO 8601 и како датумот се враќа во epoch време.
Unix timestamp го претставува времето во однос на Unix epoch: 1970-01-01 00:00:00 UTC. Обично се чува како секунди од epoch или како милисекунди од epoch.
За правилно претворање прво треба да ја знаете единицата. 1720000000 секунди се 2024-07-03 09:46:40 UTC. 1720000000000 милисекунди се истиот миг.
Timestamp означува миг. UTC, локално време или IANA зона го менуваат само начинот на кој тој миг се прикажува.
Ова е водич за претворање: timestamp во датум, датум во timestamp, UTC наспроти локално и ISO 8601. Ако вредноста неочекувано стане датум од 1970, тоа обично е неусогласеност на секунди и милисекунди—видете Unix Timestamp: секунди наспроти милисекунди — зошто датумот покажува 1970.
Што е Unix Timestamp?
Unix timestamp, Unix time и epoch time обично значат изминато време од 1970-01-01 00:00:00 UTC. Бројот не е форматирана низа датум со етикета на временска зона. Истиот миг може да се прикаже со различни часови во UTC, Њујорк, Токио или Сеул. Unix timestamp не се секогаш секунди—милисекундите се чести во практика.
Што е Unix Epoch?
Unix epoch е 1970-01-01 00:00:00 UTC. Timestamp 0 е тој миг. Позитивен timestamp е по epoch. Некои системи дозволуваат негативен timestamp за време пред epoch, но поддршката на јазици и опсези на датуми варира.
Дали мојот timestamp е во секунди или милисекунди?
1720000000 се секунди; 1720000000000 се милисекунди; тоа е истиот миг. Практична назнака: околу 10 цифри често значи секунди, околу 13 често милисекунди. Бројот на цифри е само евристика. Минати или идни датуми, други единици или сопствен epoch може да изгледаат поинаку. Претворувач на датум и време претвора со секунди, милисекунди или auto (≤10 цифри како секунди, ≥13 како милисекунди)—изберете ја единицата кога ја знаете.
Зошто погрешната единица дава погрешен датум?
JavaScript Date очекува милисекунди. Ако 1720000000 го предадете како милисекунди, добивате 1970-01-20 21:46:40 UTC. Третирањето на милисекунди како секунди, или обратно, паѓа на сосема друг датум. За патот на дијагностика околу 1970, видете Unix Timestamp: секунди наспроти милисекунди — зошто датумот покажува 1970.
new Date(1720000000);
// 1970-01-20T21:46:40.000Z
Како да претворите Unix timestamp во секунди
Помножете ги секундите со 1000 за да добиете милисекунди. JavaScript Date е заснован на милисекунди, па користете new Date(timestamp * 1000).
const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Како да претворите timestamp во милисекунди
Предајте ги милисекундите директно на Date. Не множете timestamp во милисекунди повторно со 1000.
const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Зошто истиот timestamp покажува различно време?
Unix timestamp е еден миг. Приказот во UTC, локално време или избрана IANA зона го менува циферблатот. За 1720000000000, UTC е 2024-07-03 09:46:40. America/New_York тој ден е 2024-07-03 05:46:40 (EDT). Asia/Seoul е 2024-07-03 18:46:40 (UTC+9). Вредностите за Њујорк и Сеул доаѓаат од Intl, не од слоган за фиксен помест.
Дали Unix timestamp содржи временска зона?
Не. Не чува ни America/New_York ни Asia/Seoul. Timestamp идентификува миг. Зоната се применува кога тој миг го форматирате како читлив датум и време. Epoch е дефиниран во однос на UTC; самиот број не е „UTC поле за зона“.
Unix Timestamp наспроти ISO 8601
1720000000 и 2024-07-03T09:46:40Z можат да го претстават истиот миг. Unix е нумеричка вредност на изминато време. ISO 8601 е читлива низа датум-време и може да заврши со Z (UTC) или нумерички помест. Z значи UTC; понекогаш се вика Zulu. Не се ист формат.
Како да го добиете тековниот Unix timestamp?
Во JavaScript, Date.now() се милисекунди. Math.floor(Date.now() / 1000) се секунди. Не вградувајте „сега“ во статија; се поместува.
Date.now();
Math.floor(Date.now() / 1000);
Можете ли датум да го вратите во Unix timestamp?
Да. Од експлицитна UTC ISO низа, getTime() враќа милисекунди; поделете со 1000 и заокружете надолу за секунди.
const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000
Внимавајте на двосмислени формати на датум
03/07/2024 може да значи 7 март или 3 јули, зависно од locale. Претпочитајте датум и време во ISO стил со зона или помест. Претворувач на датум и време одбива двосмислени нумерички датуми како 01/02/2026 и бара избирач на датум или вредност во ISO стил.
Што е со летното сметање на времето?
Unix timestamp не чува знаменце за летно време. Локалниот приказ ги применува правилата на зоната. America/New_York користи различни помести зима и лето, па „Њујорк е UTC-5“ не е секогаш точно.
Дали Unix timestamp ги вклучува престапните секунди?
Типичното POSIX/Unix време не ги брои престапните секунди како дополнителни SI секунди на непрекината скала. Платформите може да се разликуваат. За секојдневно претворање овој детаљ можете да го занемарите.
Чести грешки при претворање Unix timestamp
Овие мешања даваат погрешен датум или погрешен час:
Секунди третирани како милисекунди
Современа вредност во секунди тогаш паѓа близу 1970 во JavaScript Date.
Милисекунди третирани како секунди
Датумот скока далеку во иднината.
Третирање на 10 или 13 цифри како закон
Бројот на цифри е назнака, не гаранција.
Мешање на UTC со локално време
Мигот е ист; прикажаниот час може да се разликува.
Претпоставка дека зоната е во бројот
IANA имињата се применуваат при приказ, не се чуваат во timestamp.
Двосмислени датуми, слогани за DST или дополнително ×1000
Користете внес во ISO стил. Не множете timestamp во милисекунди повторно.
Проверени UTC примери
Овие UTC времиња се пресметани, не погодени:
| Влез | Единица | UTC |
|---|---|---|
| 0 | секунди | 1970-01-01 00:00:00 |
| 1720000000 | секунди | 2024-07-03 09:46:40 |
| 1720000000000 | милисекунди | 2024-07-03 09:46:40 |
| 1720000000 | милисекунди | 1970-01-20 21:46:40 |
Едноставен водич за одлука при претворање
Ако изворот ја именува единицата, користете ја. Ако не, бројот на цифри е назнака—потоа проверете дали датумот изгледа веродостојно. Претворете секунди во милисекунди кога API бара ms. За приказ изберете UTC, локално или IANA зона. ISO 8601 е корисен за чување и размена.
- Имате Unix timestamp
- Единица наведена? Користете ја; инаку проверете ја големината
- Секунди? ×1000 ако API треба милисекунди
- Милисекунди? Користете директно во API заснован на ms
- Прикажете како UTC, локално или IANA зона
- Треба низа? ISO 8601 може да одговара
Timestamp идентификува точка во времето. UTC, локално време или зона само одлучуваат како тој миг се покажува на човек.
Претворете Unix timestamp во прелистувачот
NEXNARA Претворувач на датум и време претвора Unix секунди и милисекунди, покажува UTC, локално време и ISO 8601, и претвора меѓу IANA временски зони.
Unix режимот поддржува секунди, милисекунди, auto единица, тековно време и датум-во-timestamp. Режимот на зона пребарува IANA имиња, ја користи зоната на прелистувачот и применува Intl помести свесни за DST. Режимот на формат има излез читлив по locale, приказ 12/24 часа и заштита од двосмислен датум. Разлика на датуми е одделен режим.
Претворањето ги користи Date и Intl API на прелистувачот. Вредности надвор од она што Date може да претстави се одбиваат. Auto единицата не погодува вредности со 11–12 цифри; изберете секунди или милисекунди.
Самото претворање на датум и timestamp се случува во вашиот прелистувач. Влезовите не се испраќаат на сервер на NEXNARA за претворање. Рекламите и другите функции на сајтот сè уште ја користат мрежата.
Залепете timestamp во Претворувач на датум и време и споредете UTC, локално време и ISO 8601 пред да ја изберете единицата.
FAQ
Како да претворам Unix timestamp во датум?
Знајте ја единицата. За секунди во JavaScript користете new Date(n * 1000). За милисекунди, new Date(n). Потоа форматирајте како UTC, локално или зона.
Дали Unix timestamp е во секунди или милисекунди?
Може и двете. Околу 10 цифри често значи секунди, а околу 13 милисекунди, но тоа е евристика, не правило.
Зошто мојот timestamp покажува 1970?
Обично вредност во секунди е прочитана како милисекунди. Видете Unix Timestamp: секунди наспроти милисекунди — зошто датумот покажува 1970.
Дали Unix timestamp е секогаш UTC?
Epoch е дефиниран во однос на UTC, а бројот идентификува миг. Зоната на приказ е одделна. Тоа не е зачувано „UTC поле за зона“.
Дали Unix timestamp содржи временска зона?
Не. Не носи IANA идентификатор. Зоната се применува кога го форматирате мигот.
Како да претворам датум во Unix timestamp?
Од UTC ISO низа, date.getTime() се милисекунди; Math.floor(date.getTime() / 1000) се секунди.