ابزار تبدیل Timestamp یونیکس
یک ابزار حرفهای تبدیل Timestamp یونیکس که از تبدیل دوجهته بین Timestamp و تاریخ-زمان پشتیبانی میکند، به طور خودکار Timestampهای ثانیهای (۹ تا ۱۰ رقم)، میلیثانیهای (۱۳)، میکروثانیهای (۱۶) و نانوثانیهای (۱۹) را بر اساس تعداد ارقام تشخیص میدهد. سه دیدگاه ارائه میدهد: زمان محلی، زمان UTC و منطقه زمانی انتخابشده، از کارتهای مبدل متعدد برای مقایسه دستهای پشتیبانی میکند و محدودههای زمانی اخیر و دورههای زمانی رایج داخلی را برای اشکالزدایی توسعه و تبدیلهای روزمره شامل میشود. رابط پاسخگو، تبدیل آنی در هنگام ورودی، تازهسازی خودکار نتیجه هنگام تغییر منطقه زمانی است و تمام عملیات به صورت محلی در مرورگر شما انجام میشود، حفظ حریم خصوصی و امنیت را تضمین میکند.
زمان کنونی
Timestamp به تاریخ
از Timestampهای ثانیه، میلیثانیه، میکروثانیه و نانوثانیه پشتیبانی میکند، با توجه به تعداد ارقام به طور خودکار تشخیص داده میشود (۹-۱۰ رقم ثانیه، ۱۳ رقم میلیثانیه، ۱۶ رقم میکروثانیه، ۱۹ رقم نانوثانیه)
نتیجه تبدیل(خودکار)
تاریخ به Timestamp
نتیجه تبدیل(خودکار)
مبدل تاریخ-زمان چندگانه Timestamp
مبدل تاریخ-زمان چندگانه Timestamp
مبدل Timestamp تاریخ چندگانه
مبدل Timestamp تاریخ چندگانه
دستورالعمل استفاده
این ابزار برای تکمیل سریع تبدیل دوجهتی بین زمانمهرهای یونیکس و تاریخ-زمانها در سناریوهای مختلف استفاده میشود. از دقت ثانیه و میلیثانیه پشتیبانی میکند و به شما اجازه میدهد منطقه زمانی هدف را برای مقایسه نمایش انتخاب کنید. مبدلهای تک کارتی و چند کارتی ارائه میدهد. تبدیل همزمان با ورود شما انجام میشود و نتایج با تغییر منطقه زمانی بهطور خودکار تازه میشوند. همچنین محدودههای زمانی اخیر و دورههای زمانی رایج را در خود دارد تا نیازهای اشکالزدایی توسعه و تبدیلهای روزمره را برآورده کند.
ویژگیهای ابزار
- تبدیل همزمان با ورود، با تشخیص خودکار زمانمهرهای ثانیه/میلیثانیه/میکروثانیه/نانوثانیه.
- پشتیبانی از انتخاب و نمایش منطقه زمانی جهانی: سه نمای محلی، UTC و مناطق زمانی انتخاب شده.
- کارتهای مبدل متعدد برای مقایسه دستهای آسان.
- رابط کاربری پاسخگو و سازگار با صفحهکلید، با دسترسیپذیری خوب.
- محدودههای زمانی اخیر و دورههای زمانی رایج داخلی، قابل کپی و استفاده.
Timestamp چیست؟
زمانمهر یونیکس، تعداد کل ثانیهها یا میلیثانیههایی است که از ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC (عصر یونیکس) گذشته است.
زمانمهر یک عدد نشاندهنده زمان است، معمولاً بر حسب ثانیه یا میلیثانیه.
نقطه شروع زمانمهر ۰۰:۰۰:۰۰ UTC در ۱ ژانویه ۱۹۷۰ است که عصر یونیکس نامیده میشود.
زمانمهرها در ابتدا در سیستمعاملهای یونیکس استفاده میشدند، به همین دلیل اغلب زمانمهرهای یونیکس نامیده میشوند.
زمانمهرها بهطور گسترده در برنامهنویسی و ارتباطات شبکه، بهویژه در توسعه وب استفاده میشوند.
دقتهای رایج: ثانیه (مثلاً ۱۷۳۵۶۸۹۶۰۰) و میلیثانیه (مثلاً ۱۷۳۵۶۸۹۶۰۰۰۰۰). هنگام نمایش تاریخ-زمانهای مرتبط با مناطق زمانی، باید با منطقه زمانی فرمتبندی و نمایش داده شوند.
Timestampهای رایج (دورههای زمانی)
مشکل سال ۲۰۳۸ Timestampها
مشکل سال ۲۰۳۸ به این موضوع اشاره دارد که یک عدد صحیح امضایی ۳۲ بیتی که زمانمهر یونیکس (بر حسب ثانیه از ۰۰:۰۰:۰۰ UTC در ۱ ژانویه ۱۹۷۰) را ذخیره میکند، پس از ۰۳:۱۴:۰۷ UTC در ۱۹ ژانویه ۲۰۳۸ سرریز خواهد شد.
از آنجایی که دامنه عدد صحیح امضایی ۳۲ بیتی از -۲۱۴۷۴۸۳۶۴۸ تا ۲۱۴۷۴۸۳۶۴۷ است و زمانمهر ۰۳:۱۴:۰۷ UTC در ۱۹ ژانویه ۲۰۳۸ برابر ۲۱۴۷۴۸۳۶۴۷ است، یک عدد صحیح امضایی ۳۲ بیتی نمیتواند زمانمهرهای بعد از این نقطه را نمایش دهد.
بیشتر سیستمها یا نرمافزارهای قدیمی که از time_t ۳۲ بیتی استفاده میکنند، تحت تأثیر قرار میگیرند. سیستمهای مدرن معمولاً از ۶۴ بیتی (مانند عدد صحیح ۶۴ بیتی بر حسب میلیثانیه) استفاده میکنند و این مشکل را ندارند.
توصیه میشود از زمانمهرهای ۶۴ بیتی یا کتابخانه زمانی که از دامنه تاریخ بزرگ پشتیبانی میکند، استفاده شود.
نحوه دریافت/تبدیل Timestamp از طریق زبانهای برنامهنویسی
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');