مبدل Unix Timestamp (Epoch ↔ تاریخ)

یک زمان epoch را جای‌گذاری کنید تا آن را به‌صورت تاریخ در هر منطقهٔ زمانی ببینید، یا یک تاریخ انتخاب کنید تا Unix timestamp آن را بگیرید. ثانیه، میلی‌ثانیه، میکروثانیه و نانوثانیه خودکار تشخیص داده می‌شوند.

اجرا در مرورگر شمابدون ثبت‌نامبدون آپلود

0ثانیه
0میلی‌ثانیه

مُهر زمانی ← تاریخ

تاریخ ← مُهر زمانی

نحوهٔ استفاده از مبدل Unix Timestamp

  1. زمان یونیکس فعلی در بالا به‌روز می‌شود؛ آن را بر حسب ثانیه یا میلی‌ثانیه کپی کنید.
  2. یک timestamp (یا تاریخ ISO مانند 2026-10-12T10:00:00Z) را در مُهر زمانی ← تاریخ جای‌گذاری کنید. واحد از روی تعداد ارقام تشخیص داده می‌شود.
  3. یک منطقهٔ زمانی انتخاب کنید تا همان لحظه را به‌صورت زمان محلی ببینید، به‌علاوهٔ UTC، ISO 8601، RFC 2822، زمان نسبی و شمارهٔ هفته.
  4. برای جهت معکوس، در تاریخ ← مُهر زمانی یک تاریخ و زمان انتخاب کنید. این زمان به‌عنوان زمان محلی در منطقهٔ انتخاب‌شده، با در نظر گرفتن ساعت تابستانی، خوانده می‌شود.
  5. از دکمه‌های کپی کنار هر مقدار استفاده کنید.

Unix timestamp چیست؟

Unix timestamp (زمان epoch یا زمان POSIX) تعداد ثانیه‌های سپری‌شده از 1970-01-01 00:00:00 UTC است، بدون احتساب ثانیه‌های کبیسه. این عدد یک لحظهٔ مشخص را مستقل از منطقهٔ زمانی توصیف می‌کند؛ به همین دلیل پایگاه‌های داده، لاگ‌ها، claimهای exp در JWT و APIها از آن استفاده می‌کنند. منطقهٔ زمانی فقط وقتی اهمیت دارد که آن لحظه را برای یک انسان به تاریخ تقویمی و ساعت تبدیل کنید.

ثانیه، میلی‌ثانیه، میکروثانیه یا نانوثانیه؟

پلتفرم‌های مختلف با واحدهای مختلف می‌شمارند و قاطی کردن آن‌ها یک باگ کلاسیک است (تاریخ‌هایی در 1970 یا در سال 55,000). مبدل به تعداد ارقام نگاه می‌کند:

تعداد ارقام (امروز)واحدمنبع رایج
10ثانیهUnix date +%s، PHP time()، claimهای JWT، Python int(time.time())
13میلی‌ثانیهJavaScript Date.now()، Java System.currentTimeMillis()
16میکروثانیهساختار داخلی PostgreSQL، برخی سیستم‌های tracing
19نانوثانیهGo time.UnixNano()، Python time.time_ns()

گرفتن timestamp فعلی در کد

// JavaScript
Math.floor(Date.now() / 1000)
# Python
import time; int(time.time())
# Bash
date +%s
-- PostgreSQL
SELECT extract(epoch FROM now());

منطقهٔ زمانی و ساعت تابستانی

وقتی یک تاریخ را به timestamp تبدیل می‌کنید، زمان محلی در منطقهٔ IANA انتخاب‌شده (مثلاً Europe/Istanbul یا America/New_York) و با پایگاه دادهٔ منطقهٔ زمانی مرورگر شما تفسیر می‌شود. هنگام جلو کشیدن ساعت در بهار برخی زمان‌های محلی وجود ندارند؛ هنگام عقب کشیدن ساعت در پاییز یک زمان محلی دو بار رخ می‌دهد و لحظهٔ زودتر استفاده می‌شود. ابزار وقتی این اتفاق بیفتد به شما اطلاع می‌دهد.

مشکل سال 2038

سیستم‌هایی که ثانیه‌ها را در یک عدد صحیح علامت‌دار 32 بیتی ذخیره می‌کنند در 2147483647 سرریز می‌شوند، یعنی 2038-01-19 03:14:07 UTC. پلتفرم‌های مدرن از مقادیر 64 بیتی استفاده می‌کنند، اما سیستم‌های نهفتهٔ قدیمی و برخی ستون‌های پایگاه داده ممکن است هنوز تحت تأثیر باشند.

پرسش‌های متداول

از کجا بفهمم timestamp من بر حسب ثانیه است یا میلی‌ثانیه؟
ارقام را بشمارید. تاریخ‌های امروزی بر حسب ثانیه 10 رقم و بر حسب میلی‌ثانیه 13 رقم دارند. مبدل این را خودکار تشخیص می‌دهد و می‌گوید از کدام واحد استفاده کرده است.
آیا Unix timestamp همیشه UTC است؟
بله. خود timestamp منطقهٔ زمانی ندارد؛ ثانیه‌ها را از نیمه‌شب UTC در 1 ژانویهٔ 1970 می‌شمارد. منطقهٔ زمانی فقط هنگام نمایش آن به‌صورت تاریخ محلی اعمال می‌شود.
آیا می‌توانم timestampهای منفی را تبدیل کنم؟
بله. مقادیر منفی لحظه‌هایی پیش از 1970 هستند، مثلاً -86400 برابر 1969-12-31 00:00:00 UTC است.
آیا زمان یونیکس ثانیه‌های کبیسه را شامل می‌شود؟
خیر. هر روز یونیکس دقیقاً 86,400 ثانیه است، بنابراین ثانیه‌های کبیسه شمرده نمی‌شوند. این کار محاسبات تاریخ را ساده نگه می‌دارد.
آیا می‌توانم به‌جای عدد، یک تاریخ ISO 8601 جای‌گذاری کنم؟
بله. رشته‌هایی مانند 2026-10-12T10:00:00Z یا 2026-10-12T10:00:00+03:00 تجزیه می‌شوند و در همهٔ قالب‌ها، از جمله Unix timestamp، نمایش داده می‌شوند.

ابزارهای مرتبط