Конвертер Unix-мітки часу
Інструмент для двостороннього перетворення Unix/Linux-міток часу в дату та час, з підтримкою порівняння в різних часових поясах.
Поточний час
Перетворити позначення часу на дату
Результат перетворення(автоматично)
Перетворити дату на позначення часу
Результат перетворення(автоматично)
Мультиконвертер позначень часу у дату та час
Мультиконвертер позначень часу у дату та час
Мультиконвертер дат у позначення часу
Мультиконвертер дат у позначення часу
Інструкція з використання
Цей інструмент призначений для швидкого двостороннього перетворення Unix-часового штампу та дати з часу в різних сценаріях. Він підтримує точність в секундах та мілісекундах і дозволяє обрати цільову часову зону для порівняльного відображення. Надаються одиничний та багатокартковий конвертери. Перетворення відбувається при введенні даних, при зміні часової зони результати автоматично оновлюються. Також вбудовані останні часові діапазони та поширені часові інтервали, що задовольняє потреби розробки, налагодження та звичайних розрахунків.
Особливості функцій інструменту
- Перетворення відразу після введення, підтримка автоматичного розпізнавання секундного/мілісекундного часового штампу
- Підтримка вибору та відображення глобальних часових зон: три види - місцева, UTC, вибрана часова зона
- Багатокарткові конвертери для зручного порівняння у пакеті
- Адаптивний інтерфейс та зручний для клавіатури, хорошая доступність
- Вбудовані останні часові діапазони та поширені часові інтервали, готові до копіювання та використання
Що таке позначення часу Unix?
Unix-часовий штамп (Unix Timestamp) - це загальна кількість секунд або мілісекунд, що пройшли з 00:00:00 UTC (Unix Epoch) 1 січня 1970 року.
Часовий штамп - це числовий показник часу, зазвичай виражений у секундах або мілісекундах.
Початковою точкою для часового штампу є 00:00:00 UTC 1 січня 1970 року, цей час називається Unix-епохою.
Часові штампи спочатку використовувалися в операційній системі Unix, тому їх часто називають Unix-часовими штампами.
Часові штампи широко використовуються в програмуванні та мережевому спілкуванні, особливо в веб-розробці.
Поширені рівні точності: секунди (наприклад, 1735689600) та мілісекунди (наприклад, 1735689600000). При відображенні дати та часу, пов'язаних з часовою зоною, потрібно форматувати їх з урахуванням відповідної часової зони.
Поширені позначення часу (тривалості)
Проблема 2038 року для позначень часу
Проблема 2038 року стосується переповнення 32-бітового знакового цілого числа, яке зберігає Unix-часовий штамп (у секундах, починаючи з 00:00:00 UTC 1970-01-01) після 03:14:07 19 січня 2038 року.
Оскільки діапазон 32-бітового знакового цілого числа становить від -2 147 483 648 до 2 147 483 647, а часовий штамп на момент 03:14:07 UTC 19 січня 2038 року дорівнює 2 147 483 647, після цього моменту 32-бітове знакове ціле число не зможе представити наступні часові штампи.
Найчастіше це впливає на старі системи або програмне забезпечення, які використовують 32-бітове time_t. Сучасні системи зазвичай використовують 64 біт (наприклад, 64-бітове ціле число в мілісекундах), тому у них ця проблема відсутня.
Рекомендується використовувати 64-бітові часові штампи або бібліотеки часу, які підтримують великий діапазон дат.
Як отримати/перетворити позначення часу за допомогою мов програмування
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
new Date(1735689600 * 1000).toISOString();
new Date('2025-01-01T00:00:00Z').getTime();
time(); // seconds
intval(microtime(true) * 1000); // milliseconds
date('Y-m-d H:i:s', 1735689600);
strtotime('2025-01-01 00:00:00');
import time
int(time.time()) # seconds
int(time.time() * 1000) # milliseconds
import datetime
datetime.datetime.utcfromtimestamp(1735689600).isoformat()
import datetime
int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
import "time"
time.Now().Unix() // seconds
time.Now().UnixMilli() // milliseconds
import "time"
time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
import "time"
ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
use chrono::Utc;
let now = Utc::now();
let sec = now.timestamp(); // seconds i64
let ms = now.timestamp_millis(); // milliseconds i128
use chrono::{DateTime, NaiveDateTime, Utc};
let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
.unwrap()
.and_utc();
let iso = dt.to_rfc3339();
use chrono::DateTime;
let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
.unwrap()
.timestamp();
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;
-- SQLite
SELECT strftime('%s', 'now');
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);
-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';
-- SQLite
SELECT datetime(1735689600, 'unixepoch');
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP('2025-01-01 00:00:00');
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2025-01-01 00:00:00+00')::bigint;
-- SQLite
SELECT strftime('%s', '2025-01-01 00:00:00');