تبدیلگر تایماستمپ
تبدیل تایماستمپ Unix به تاریخ خوانا و برعکس
تایماستمپ Unix فعلی
1774458461
Wed, 25 Mar 2026 17:07:41 GMT
تایماستمپ Unix چیست؟
تایماستمپ Unix (که epoch time یا POSIX time نیز نامیده میشود) تعداد ثانیههایی است که از اول ژانویه ۱۹۷۰، ساعت ۰۰:۰۰:۰۰ UTC گذشته است. این تاریخ را Unix epoch مینامند. هر ثانیهای که میگذرد این شمارنده را یک واحد افزایش میدهد و هر لحظه از زمان را با یک عدد صحیح منحصربهفرد نمایش میدهد. یک تبدیلگر تایماستمپ Unix این عدد را به فرمتهای تاریخ خوانا مانند ISO 8601، RFC 2822 یا رشتههای محلی تبدیل میکند.
تایماستمپهای Unix روش استاندارد نمایش زمان در محاسبات هستند. پایگاههای داده ستونهای created_at و updated_at را به صورت عدد صحیح یا تایماستمپ میلیثانیهای ذخیره میکنند. پاسخهای API تایماستمپهایی برای هدرهای کش (Expires، Last-Modified)، کلیمهای JWT (iat، exp، nbf) و گزارشهای رویداد شامل میشوند. فایلهای لاگ از nginx، syslog و فریمورکهای نرمافزاری همگی از epoch time استفاده میکنند. این فرمت بدون ابهام است زیرا همواره UTC را نمایش میدهد و هیچ منطقه زمانی یا آفست تابستانی برای سوءتفسیر وجود ندارد.
تبدیل دستی تایماستمپها به تاریخ مستعد خطاست. مقداری مانند ۱۷۱۱۳۲۴۸۰۰ هیچ سرنخی از تاریخ واقعیاش نمیدهد. این ابزار تایماستمپهای Unix را به تاریخ خوانا و تاریخ را به تایماستمپ تبدیل میکند. چه در حال خواندن یک کلیم JWT exp باشید، چه در حال اشکالزدایی یک پرسوجوی پایگاه داده، یا بررسی تایماستمپ لاگ، این ابزار مقادیر ۱۰ رقمی (ثانیه) و ۱۳ رقمی (میلیثانیه) را به صورت خودکار پردازش میکند.
چرا از این تبدیلگر تایماستمپ استفاده کنیم؟
خواندن تایماستمپهای خام Unix از لاگها، پایگاههای داده یا پاسخهای API نیاز به حفظ محاسبات epoch یا نوشتن کد موقت دارد. این تبدیلگر بدون هیچ پیکربندیای در مرورگر شما این کار را انجام میدهد. چه نیاز به رمزگشایی انقضای JWT، بررسی یک خط لاگ، یا تنظیم TTL پایگاه داده داشته باشید، نتیجه تنها با یک کلیک در دسترس است. ابزار به صورت خودکار تشخیص میدهد که یک مقدار تایماستمپ ۱۰ رقمی بر حسب ثانیه است یا ۱۳ رقمی بر حسب میلیثانیه، بنابراین هرگز لازم نیست به صورت دستی بر ۱۰۰۰ تقسیم کنید. تمام پردازشها به صورت محلی در مرورگر شما اجرا میشوند. هیچ دادهای از دستگاه شما خارج نمیشود، بنابراین تایماستمپهای سیستمهای داخلی و لاگهای حساس خصوصی میمانند.
موارد استفاده از تبدیلگر تایماستمپ
جدول مرجع تایماستمپهای Unix
جدول زیر تایماستمپهای Unix شناختهشده و تاریخهای متناظر آنها را نشان میدهد. این مقادیر برای بررسیهای سریع، آزمایش و درک بازه تایماستمپهای ۳۲ بیتی و ۶۴ بیتی مفیدند.
| تایماستمپ | تاریخ (UTC) | توضیح |
|---|---|---|
| 0 | Jan 1, 1970 00:00:00 UTC | Unix epoch start |
| 86400 | Jan 2, 1970 00:00:00 UTC | Exactly 1 day |
| 946684800 | Jan 1, 2000 00:00:00 UTC | Y2K |
| 1000000000 | Sep 9, 2001 01:46:40 UTC | 10-digit milestone |
| 1234567890 | Feb 13, 2009 23:31:30 UTC | Ascending digits |
| 1700000000 | Nov 14, 2023 22:13:20 UTC | Recent 10-digit |
| 2000000000 | May 18, 2033 03:33:20 UTC | Next 10-digit milestone |
| 2147483647 | Jan 19, 2038 03:14:07 UTC | Y2038 (signed 32-bit max) |
| 4102444800 | Jan 1, 2100 00:00:00 UTC | Next century |
مقایسه فرمتهای تاریخ و زمان
سیستمها و استانداردهای مختلف یک لحظه یکسان را با فرمتهای رشتهای متفاوت نمایش میدهند. این جدول رایجترین فرمتهایی را که در APIها، لاگها و پایگاههای داده با آنها روبرو میشوید مقایسه میکند.
| فرمت | مثال | توضیحات |
|---|---|---|
| Unix (seconds) | 1711324800 | Integer, no timezone info |
| Unix (milliseconds) | 1711324800000 | Used by JavaScript Date.now() |
| ISO 8601 | 2024-03-25T00:00:00Z | Machine-readable, includes timezone |
| RFC 2822 | Mon, 25 Mar 2024 00:00:00 +0000 | Email and HTTP headers |
| UTC string | Mon, 25 Mar 2024 00:00:00 GMT | Date.prototype.toUTCString() |
| Human readable | March 25, 2024, 12:00:00 AM | Locale-dependent, display only |
نمونه کد
در زبان برنامهنویسی که با آن کار میکنید بین تایماستمپهای Unix و تاریخها تبدیل کنید. هر نمونه هر دو جهت را نشان میدهد: تایماستمپ به تاریخ و تاریخ به تایماستمپ.
// Current Unix timestamp in seconds
Math.floor(Date.now() / 1000) // → 1711324800
// Unix timestamp to Date object
const date = new Date(1711324800 * 1000)
date.toISOString() // → "2024-03-25T00:00:00.000Z"
date.toUTCString() // → "Mon, 25 Mar 2024 00:00:00 GMT"
// Date string to Unix timestamp
Math.floor(new Date('2024-03-25T00:00:00Z').getTime() / 1000)
// → 1711324800
// Millisecond timestamps (common in JS APIs)
Date.now() // → 1711324800000 (ms)
Date.parse('2024-03-25') // → 1711324800000 (ms)import time
from datetime import datetime, timezone
# Current Unix timestamp
int(time.time()) # → 1711324800
# Unix timestamp to datetime
dt = datetime.fromtimestamp(1711324800, tz=timezone.utc)
dt.isoformat() # → '2024-03-25T00:00:00+00:00'
dt.strftime('%Y-%m-%d %H:%M:%S %Z') # → '2024-03-25 00:00:00 UTC'
# Datetime string to Unix timestamp
dt = datetime.fromisoformat('2024-03-25T00:00:00+00:00')
int(dt.timestamp()) # → 1711324800
# Parse RFC 2822 dates (from email headers)
from email.utils import parsedate_to_datetime
parsedate_to_datetime('Mon, 25 Mar 2024 00:00:00 +0000').timestamp()
# → 1711324800.0package main
import (
"fmt"
"time"
)
func main() {
// Current Unix timestamp
now := time.Now().Unix() // → 1711324800
// Unix timestamp to time.Time
t := time.Unix(1711324800, 0).UTC()
fmt.Println(t.Format(time.RFC3339))
// → 2024-03-25T00:00:00Z
// Parse a date string to Unix timestamp
parsed, _ := time.Parse(time.RFC3339, "2024-03-25T00:00:00Z")
fmt.Println(parsed.Unix())
// → 1711324800
// Millisecond timestamp
ms := time.Now().UnixMilli() // → 1711324800000
fmt.Println(now, ms)
}# Current Unix timestamp date +%s # → 1711324800 # Convert timestamp to human-readable date (GNU date) date -d @1711324800 # → Mon Mar 25 00:00:00 UTC 2024 # Convert timestamp to ISO 8601 date -d @1711324800 --iso-8601=seconds # → 2024-03-25T00:00:00+00:00 # macOS (BSD date) — slightly different flags date -r 1711324800 # → Mon Mar 25 00:00:00 UTC 2024 # Date string to timestamp (GNU date) date -d "2024-03-25 00:00:00 UTC" +%s # → 1711324800