Unix Timestamp Converter

مبدل تایم‌استمپ Unix

هر تایم‌استمپ Unix (ثانیه یا میلی‌ثانیه) را در یک لحظه به تاریخی خوانا تبدیل کنید — یا هر تاریخی را به epoch برگردانید. ISO 8601، RFC 2822، UTC، زمان محلی و بیش از ۱۰ منطقه زمانی در یک نما.

تایم‌استمپ Unix (که با نام‌های "زمان Unix" یا "زمان epoch" نیز شناخته می‌شود) تعداد ثانیه‌های سپری‌شده از ساعت 00:00:00 UTC پنجشنبه ۱ ژانویه ۱۹۷۰ است که ثانیه‌های کبیسه را نادیده می‌گیرد. این قالب جهانی زمان در پایگاه‌های داده، فایل‌های لاگ، APIها و کوکی‌ها استفاده می‌شود. عدد ۱۰ رقمی ثانیه است (در سال ۲۲۸۶ به ۱۱ رقم می‌رسد) و عدد ۱۳ رقمی میلی‌ثانیه است.

بیشتر ابزارهای Unix (curl، date، syslog، claimهای exp/iat در JWT) از ثانیه استفاده می‌کنند. Date.now در JavaScript میلی‌ثانیه برمی‌گرداند. Java، Kotlin و بسیاری از APIهای وب از میلی‌ثانیه استفاده می‌کنند. اگر عدد شما امروز حدود ۱۰ رقم باشد، ثانیه است؛ اگر ۱۳ رقم باشد، میلی‌ثانیه. iKit براساس تعداد ارقام به‌صورت خودکار تشخیص می‌دهد، اما می‌توانید واحد را با دکمه‌های رادیویی اجباری کنید.

زمان فعلی Unix (زنده)
ثانیه
میلی‌ثانیه
واحد

ISO 8601 (UTC)

ساعت UTC

زمان محلی

محلی Y-M-D H:M:S

RFC 2822 / HTTP

نسبت به اکنون

روز هفته

همین لحظه در مناطق زمانی مهم

چرا مبدل تایم‌استمپ Unix از iKit

ساخته‌شده برای توسعه‌دهندگانی که لاگ‌ها، APIها و تایم‌استمپ‌های پایگاه‌داده را دیباگ می‌کنند — بدون ثبت‌نام، بدون آپلود و بدون واسطه میان شما و داده‌هایتان.

epoch فعلی به‌صورت زنده

زمان فعلی Unix هر ثانیه در بالای صفحه به ثانیه و میلی‌ثانیه به‌روزرسانی می‌شود. کپی هر قالب با یک کلیک.

تشخیص خودکار ثانیه و میلی‌ثانیه

هر عددی را paste کنید — ۱۰ رقم به‌عنوان ثانیه، ۱۳ رقم به‌عنوان میلی‌ثانیه و ۱۶ رقم به‌عنوان میکروثانیه در نظر گرفته می‌شود. در صورت نیاز با کلید واحد به‌صورت دستی تنظیم کنید.

همه قالب‌های خروجی رایج

ISO 8601، RFC 2822، ساعت UTC، زمان محلی شما و Y-M-D H:M:S در یک نما. به‌علاوه روز هفته و یک اختلاف نسبی خوانا ("۲ ساعت پیش").

بیش از ۱۰ منطقه زمانی در یک نگاه

همان لحظه را در UTC، نیویورک، لس‌آنجلس، لندن، پاریس، توکیو، شانگهای، تایپه، کلکته و سیدنی ببینید — مفید برای حوادث بین‌تیمی و APIهای جهانی.

تبدیل دوطرفه

به حالت تاریخ ← تایم‌استمپ بروید تا "Jan 15 2024 10:30 UTC" را تایپ کنید یا از یک ورودی date-time انتخاب کنید و تایم‌استمپ Unix را به ثانیه و میلی‌ثانیه دریافت کنید.

حریم خصوصی از طراحی

همه چیز به‌صورت JavaScript که از قبل در تب مرورگر شما بارگذاری شده اجرا می‌شود. در DevTools → Network قابل بررسی است: نه fetch، نه XHR و نه لاگ‌برداری. مناسب برای تایم‌استمپ‌های محیط production.

تبدیل تایم‌استمپ Unix چگونه کار می‌کند

تایم‌استمپ Unix فقط یک عدد صحیح است — اما تبدیل آن به تاریخ شامل جزئیات شگفت‌انگیزی است.

  1. 1

    انتخاب واحد

    تایم‌استمپ Unix بسته به منبع می‌تواند به ثانیه، میلی‌ثانیه، میکروثانیه یا نانوثانیه باشد. اولین کار این است که بدانید کدام را دارید. iKit به تعداد ارقام نگاه می‌کند: ~۱۰ رقم = ثانیه، ~۱۳ = میلی‌ثانیه، ~۱۶ = میکروثانیه. می‌توانید تشخیص خودکار را با دکمه‌های رادیویی واحد بازنویسی کنید.

  2. 2

    ضرب به میلی‌ثانیه

    سازنده Date در JavaScript میلی‌ثانیه می‌گیرد، بنابراین برای نرمال‌سازی، ثانیه را در ۱۰۰۰ ضرب می‌کنیم (یا میکروثانیه را بر ۱۰۰۰ تقسیم می‌کنیم). در داخل، Date میلی‌ثانیه‌های سپری‌شده از epoch را در یک float ۶۴ بیتی ذخیره می‌کند — برای هر تایم‌استمپ واقع‌گرایانه بازه کافی دارد.

  3. 3

    قالب‌بندی برای انسان

    وقتی یک شیء Date داریم، از آن می‌خواهیم خود را به چند روش قالب‌بندی کند: toISOString برای ISO 8601 / UTC، toUTCString برای RFC 2822، toString برای منطقه محلی کاربر، و Intl.DateTimeFormat برای هر منطقه زمانی دیگری که می‌خواهیم نشان دهیم.

  4. 4

    جهت معکوس

    در جهت مخالف، Date.parse مرورگر ISO 8601 و بسیاری از قالب‌های طبیعی را مدیریت می‌کند. ورودی datetime-local در منطقه زمانی محلی کاربر تفسیر می‌شود. getTime میلی‌ثانیه‌های سپری‌شده از epoch را برمی‌گرداند؛ برای ثانیه بر ۱۰۰۰ تقسیم کنید.

کارهای متداول با تایم‌استمپ Unix

موقعیت‌های واقعی که در آن سراغ یک مبدل epoch خواهید رفت.

خواندن claim مربوط به exp / iat در JWT

JSON Web Tokenها iat (زمان صدور) و exp (زمان انقضا) را به‌صورت ثانیه Unix رمزگذاری می‌کنند. عدد را paste کنید تا فوراً ببینید آیا توکن هنوز معتبر است، چه زمانی صادر شده و چه زمانی منقضی می‌شود.

دیباگ ستون تایم‌استمپ پایگاه داده

extract(epoch from now) در Postgres، UNIX_TIMESTAMP در MySQL، $toDate در MongoDB — همه epoch Unix برمی‌گردانند. مقدار تایم‌استمپ یک ردیف را paste کنید تا زمان واقعی ساعت دیواری را در مناطق زمانی مختلف ببینید.

مقایسه خطوط لاگ از سیستم‌های مختلف

لاگ‌های اپلیکیشن در UTC، syslog در زمان محلی، لاگ‌های یک ارائه‌دهنده بالادست در PST. هر تایم‌استمپ را اینجا به ISO 8601 تبدیل کنید تا هنگام پیگیری یک حادثه بتوانید آن‌ها را ثانیه‌به‌ثانیه با هم تطبیق دهید.

ساخت TTL کش یا انقضای کوکی

یک تاریخ آینده در انتخابگر بردارید، تایم‌استمپ Unix را کپی کنید و در هدر Set-Cookie، فیلد HTTP Expires یا پیکربندی TTL کش خود paste کنید. بدون محاسبات ذهنی و بدون خطاهای off-by-one منطقه زمانی.

چرا تبدیل محلی اهمیت دارد

تایم‌استمپ‌های لاگ‌های production، تیکت‌های پشتیبانی مشتری، رد ممیزی یا fixtureهای تست اغلب بی‌خطر به نظر می‌رسند اما به اقدامات کاربر و رویدادهای زیرساختی گره خورده‌اند. paste کردن آن‌ها در سرور شخص دیگر یک رد کاغذی ایجاد می‌کند که شما کنترلی روی آن ندارید. مبدل iKit به‌صورت JavaScript که از قبل در تب مرورگر شما بارگذاری شده اجرا می‌شود.

  • صفر درخواست شبکه در حین تبدیل — قابل بررسی در DevTools → Network.
  • تمام محاسبات صرفاً محاسبات Date در JavaScript است. هیچ آنالیتیکسی روی خود تایم‌استمپ‌ها وجود ندارد.
  • مناسب برای تایم‌استمپ‌های پایگاه داده production، offsetهای خطوط لاگ و ورودی‌های رد ممیزی.

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

آموزش‌های تخصصی و مقایسه ابزارها از وبلاگ iKit.

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

تایم‌استمپ Unix چیست؟

تایم‌استمپ Unix (که با نام‌های "زمان Unix" یا "زمان epoch" نیز شناخته می‌شود) تعداد ثانیه‌های سپری‌شده از ساعت 00:00:00 UTC پنجشنبه ۱ ژانویه ۱۹۷۰ است که ثانیه‌های کبیسه را نادیده می‌گیرد. این قالب جهانی زمان در پایگاه‌های داده، فایل‌های لاگ، APIها و کوکی‌ها استفاده می‌شود. عدد ۱۰ رقمی ثانیه است (در سال ۲۲۸۶ به ۱۱ رقم می‌رسد) و عدد ۱۳ رقمی میلی‌ثانیه است.

تفاوت ثانیه و میلی‌ثانیه چیست؟

بیشتر ابزارهای Unix (curl، date، syslog، claimهای exp/iat در JWT) از ثانیه استفاده می‌کنند. Date.now در JavaScript میلی‌ثانیه برمی‌گرداند. Java، Kotlin و بسیاری از APIهای وب از میلی‌ثانیه استفاده می‌کنند. اگر عدد شما امروز حدود ۱۰ رقم باشد، ثانیه است؛ اگر ۱۳ رقم باشد، میلی‌ثانیه. iKit براساس تعداد ارقام به‌صورت خودکار تشخیص می‌دهد، اما می‌توانید واحد را با دکمه‌های رادیویی اجباری کنید.

آیا تایم‌استمپ‌های من در جایی آپلود می‌شوند؟

خیر. کل ابزار JavaScript است که داخل تب مرورگر شما اجرا می‌شود. تبدیل صرفاً محاسبات Date است — نه fetch، نه XHR، نه beacon. DevTools → Network را باز کنید و ببینید: هنگام تایپ هیچ درخواستی ارسال نمی‌شود. paste کردن تایم‌استمپ از لاگ‌های production، پایگاه‌های داده staging یا تیکت‌های پشتیبانی مشتری ایمن است.

چگونه یک تایم‌استمپ از منطقه زمانی متفاوت را تبدیل کنم؟

تایم‌استمپ Unix بر اساس تعریف بدون منطقه زمانی است — تعداد ثانیه‌های سپری‌شده از epoch UTC است. تفاوت در زمان نمایش ظاهر می‌شود. انتخابگر در سمت تاریخ ← تایم‌استمپ از منطقه زمانی محلی مرورگر شما استفاده می‌کند. برای ورود تاریخ در منطقه‌ای دیگر، آن را به‌صورت آزاد با offset صریح بنویسید، مثلاً "2024-01-15 10:30:00 +09:00" یا "2024-01-15 10:30 UTC".

مشکل سال ۲۰۳۸ چه می‌شود؟

تایم‌استمپ‌های Unix علامت‌دار ۳۲ بیتی در ۱۹ ژانویه ۲۰۳۸ سرریز می‌شوند. iKit از نوع Number جاوااسکریپت (بازه عدد صحیح ایمن ۵۳ بیتی) استفاده می‌کند، بنابراین تاریخ‌هایی بسیار فراتر از سال ۲۷۵۰۰۰ میلادی را پشتیبانی می‌کنیم. مشکل Y2038 سیستم‌هایی را تحت تأثیر قرار می‌دهد که از time_t ۳۲ بیتی استفاده می‌کنند — بیشتر کرنل‌های مدرن سیستم‌عامل، پایگاه‌های داده و زبان‌ها به زمان ۶۴ بیتی منتقل شده‌اند، اما firmware قدیمی embedded هنوز ممکن است با آن مواجه شود.