ابزار تبدیل Timestamp یونیکس

یک ابزار حرفه‌ای تبدیل Timestamp یونیکس که از تبدیل دوجهته بین Timestamp و تاریخ-زمان پشتیبانی می‌کند، به طور خودکار Timestamp‌های ثانیه‌ای (۹ تا ۱۰ رقم)، میلی‌ثانیه‌ای (۱۳)، میکروثانیه‌ای (۱۶) و نانوثانیه‌ای (۱۹) را بر اساس تعداد ارقام تشخیص می‌دهد. سه دیدگاه ارائه می‌دهد: زمان محلی، زمان UTC و منطقه زمانی انتخاب‌شده، از کارت‌های مبدل متعدد برای مقایسه دسته‌ای پشتیبانی می‌کند و محدوده‌های زمانی اخیر و دوره‌های زمانی رایج داخلی را برای اشکال‌زدایی توسعه و تبدیل‌های روزمره شامل می‌شود. رابط پاسخگو، تبدیل آنی در هنگام ورودی، تازه‌سازی خودکار نتیجه هنگام تغییر منطقه زمانی است و تمام عملیات به صورت محلی در مرورگر شما انجام می‌شود، حفظ حریم خصوصی و امنیت را تضمین می‌کند.

زمان کنونی

Timestamp کنونی (ثانیه)
—
زمان کنونی
—

Timestamp به تاریخ

از Timestamp‌های ثانیه، میلی‌ثانیه، میکروثانیه و نانوثانیه پشتیبانی می‌کند، با توجه به تعداد ارقام به طور خودکار تشخیص داده می‌شود (۹-۱۰ رقم ثانیه، ۱۳ رقم میلی‌ثانیه، ۱۶ رقم میکروثانیه، ۱۹ رقم نانوثانیه)

نتیجه تبدیل(خودکار)

تاریخ به Timestamp

نتیجه تبدیل(خودکار)

مبدل تاریخ-زمان چندگانه Timestamp

مبدل تاریخ-زمان چندگانه Timestamp

مبدل Timestamp تاریخ چندگانه

مبدل Timestamp تاریخ چندگانه

دستورالعمل استفاده

این ابزار برای تکمیل سریع تبدیل دوجهتی بین زمان‌مهرهای یونیکس و تاریخ-زمان‌ها در سناریوهای مختلف استفاده می‌شود. از دقت ثانیه و میلی‌ثانیه پشتیبانی می‌کند و به شما اجازه می‌دهد منطقه زمانی هدف را برای مقایسه نمایش انتخاب کنید. مبدل‌های تک کارتی و چند کارتی ارائه می‌دهد. تبدیل همزمان با ورود شما انجام می‌شود و نتایج با تغییر منطقه زمانی به‌طور خودکار تازه می‌شوند. همچنین محدوده‌های زمانی اخیر و دوره‌های زمانی رایج را در خود دارد تا نیازهای اشکال‌زدایی توسعه و تبدیل‌های روزمره را برآورده کند.

تشخیص خودکار: ابزار دقت را با توجه به تعداد ارقام به‌طور خودکار تشخیص می‌دهد: ثانیه (۹-۱۰ رقم)، میلی‌ثانیه (۱۳)، میکروثانیه (۱۶) و نانوثانیه (۱۹) - نیازی به انتخاب دستی واحد نیست.
منطقه زمانی: زمان محلی و زمان UTC را نمایش می‌دهد، که برای استفاده در مناطق زمانی مختلف راحت است.

ویژگی‌های ابزار

  • تبدیل همزمان با ورود، با تشخیص خودکار زمان‌مهرهای ثانیه/میلی‌ثانیه/میکروثانیه/نانوثانیه.
  • پشتیبانی از انتخاب و نمایش منطقه زمانی جهانی: سه نمای محلی، UTC و مناطق زمانی انتخاب شده.
  • کارت‌های مبدل متعدد برای مقایسه دسته‌ای آسان.
  • رابط کاربری پاسخگو و سازگار با صفحه‌کلید، با دسترسی‌پذیری خوب.
  • محدوده‌های زمانی اخیر و دوره‌های زمانی رایج داخلی، قابل کپی و استفاده.

Timestamp چیست؟

زمان‌مهر یونیکس، تعداد کل ثانیه‌ها یا میلی‌ثانیه‌هایی است که از ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC (عصر یونیکس) گذشته است.

زمان‌مهر یک عدد نشان‌دهنده زمان است، معمولاً بر حسب ثانیه یا میلی‌ثانیه.

نقطه شروع زمان‌مهر ۰۰:۰۰:۰۰ UTC در ۱ ژانویه ۱۹۷۰ است که عصر یونیکس نامیده می‌شود.

زمان‌مهرها در ابتدا در سیستم‌عامل‌های یونیکس استفاده می‌شدند، به همین دلیل اغلب زمان‌مهرهای یونیکس نامیده می‌شوند.

زمان‌مهرها به‌طور گسترده در برنامه‌نویسی و ارتباطات شبکه، به‌ویژه در توسعه وب استفاده می‌شوند.

دقت‌های رایج: ثانیه (مثلاً ۱۷۳۵۶۸۹۶۰۰) و میلی‌ثانیه (مثلاً ۱۷۳۵۶۸۹۶۰۰۰۰۰). هنگام نمایش تاریخ-زمان‌های مرتبط با مناطق زمانی، باید با منطقه زمانی فرمت‌بندی و نمایش داده شوند.

Timestamp‌های اخیر (بر اساس منطقه زمانی جهانی)

Timestamp‌های رایج (دوره‌های زمانی)

۱ دقیقه
60 ثانیه‌ها
۱ ساعت
3600 ثانیه‌ها
۱ روز
86400 ثانیه‌ها
۱ هفته
604800 ثانیه‌ها
۱ ماه (۳۰ روز)
2592000 ثانیه‌ها
۱ سال (۳۶۵ روز)
31536000 ثانیه‌ها

مشکل سال ۲۰۳۸ Timestamp‌ها

مشکل سال ۲۰۳۸ به این موضوع اشاره دارد که یک عدد صحیح امضایی ۳۲ بیتی که زمان‌مهر یونیکس (بر حسب ثانیه از ۰۰:۰۰:۰۰ UTC در ۱ ژانویه ۱۹۷۰) را ذخیره می‌کند، پس از ۰۳:۱۴:۰۷ UTC در ۱۹ ژانویه ۲۰۳۸ سرریز خواهد شد.

از آنجایی که دامنه عدد صحیح امضایی ۳۲ بیتی از -۲۱۴۷۴۸۳۶۴۸ تا ۲۱۴۷۴۸۳۶۴۷ است و زمان‌مهر ۰۳:۱۴:۰۷ UTC در ۱۹ ژانویه ۲۰۳۸ برابر ۲۱۴۷۴۸۳۶۴۷ است، یک عدد صحیح امضایی ۳۲ بیتی نمی‌تواند زمان‌مهرهای بعد از این نقطه را نمایش دهد.

بیشتر سیستم‌ها یا نرم‌افزارهای قدیمی که از time_t ۳۲ بیتی استفاده می‌کنند، تحت تأثیر قرار می‌گیرند. سیستم‌های مدرن معمولاً از ۶۴ بیتی (مانند عدد صحیح ۶۴ بیتی بر حسب میلی‌ثانیه) استفاده می‌کنند و این مشکل را ندارند.

توصیه می‌شود از زمان‌مهرهای ۶۴ بیتی یا کتابخانه زمانی که از دامنه تاریخ بزرگ پشتیبانی می‌کند، استفاده شود.

نحوه دریافت/تبدیل Timestamp از طریق زبان‌های برنامه‌نویسی

JavaScript
دریافت Timestamp کنونی
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
Timestamp → تاریخ
new Date(1735689600 * 1000).toISOString();
تاریخ → Timestamp
new Date('2025-01-01T00:00:00Z').getTime();
PHP
دریافت Timestamp کنونی
time();                // seconds
intval(microtime(true) * 1000); // milliseconds
Timestamp → تاریخ
date('Y-m-d H:i:s', 1735689600);
تاریخ → Timestamp
strtotime('2025-01-01 00:00:00');
Python
دریافت Timestamp کنونی
import time

int(time.time())        # seconds
int(time.time() * 1000) # milliseconds
Timestamp → تاریخ
import datetime

datetime.datetime.utcfromtimestamp(1735689600).isoformat()
تاریخ → Timestamp
import datetime

int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
Go
دریافت Timestamp کنونی
import "time"

time.Now().Unix()      // seconds
time.Now().UnixMilli() // milliseconds
Timestamp → تاریخ
import "time"

time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
تاریخ → Timestamp
import "time"

ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
Rust
دریافت Timestamp کنونی
use chrono::Utc;

let now = Utc::now();
let sec = now.timestamp();        // seconds i64
let ms  = now.timestamp_millis(); // milliseconds i128
Timestamp → تاریخ
use chrono::{DateTime, NaiveDateTime, Utc};

let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
    .unwrap()
    .and_utc();
let iso = dt.to_rfc3339();
تاریخ → Timestamp
use chrono::DateTime;

let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
    .unwrap()
    .timestamp();
SQL
دریافت Timestamp کنونی
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;

-- SQLite
SELECT strftime('%s', 'now');
Timestamp → تاریخ
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);

-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';

-- SQLite
SELECT datetime(1735689600, 'unixepoch');
تاریخ → Timestamp
-- 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');