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

یونیکس تایم‌استمپ را به تاریخ و زمان قابل‌خواندن تبدیل کنید — یا هر تاریخی را دوباره به یونیکس تایم‌استمپ برگردانید. از ثانیه و میلی‌ثانیه پشتیبانی می‌کند.

یونیکس تایم‌استمپ فعلی

تایم‌استمپ → تاریخ

UTC
زمان محلی
ISO 8601
نسبی

تاریخ → تایم‌استمپ

ثانیه (s)
میلی‌ثانیه (ms)

Frequently asked questions

تایم‌استمپ یونیکس چیست؟

تایم‌استمپ یونیکس تعداد ثانیه‌هایی است که از ۱ ژانویهٔ ۱۹۷۰، ساعت ۰۰:۰۰:۰۰ به‌وقت UTC گذشته است — نقطهٔ مرجعی که «یونیکس اِپاک» (Unix epoch) نام دارد. این مقدار هر لحظهٔ زمانی را به‌صورت یک عدد صحیح واحد نمایش می‌دهد و همین باعث می‌شود ذخیره‌سازی، مقایسه و انجام محاسبات روی آن ساده باشد. این قالب زمانِ استانداردی است که در بیشتر سیستم‌عامل‌ها، پایگاه‌داده‌ها، APIها و زبان‌های برنامه‌نویسی استفاده می‌شود.

چطور تایم‌استمپ یونیکس را به تاریخ تبدیل کنم؟

تایم‌استمپ را در مبدّل وارد کنید تا تاریخ و زمان متناظر را در UTC و منطقهٔ زمانی محلی شما برگرداند. ابزار به‌طور خودکار تشخیص می‌دهد که مقدار واردشده بر حسب ثانیه است (عدد ۱۰ رقمی) یا میلی‌ثانیه (عدد ۱۳ رقمی). همچنین می‌توانید برعکس هم تبدیل کنید: یک تاریخ و زمان انتخاب کنید تا تایم‌استمپ یونیکس متناظر را بگیرید.

تفاوت زمان یونیکس بر حسب ثانیه و میلی‌ثانیه چیست؟

تایم‌استمپ یونیکسِ اصلی بر حسب ثانیه است. بیشتر سیستم‌های سمت سرور — PHP، Python، Go، Bash و پایگاه‌داده‌های SQL — از ثانیه استفاده می‌کنند. در JavaScript، تابع Date.now() و new Date().getTime() میلی‌ثانیه برمی‌گردانند (ثانیهٔ یونیکس × 1000). تایم‌استمپِ ثانیه‌ای در حال حاضر ۱۰ رقمی است و تایم‌استمپِ میلی‌ثانیه‌ای ۱۳ رقمی. اشتباه گرفتن این دو یکی از باگ‌های رایج است وقتی یک فرانت‌اند JavaScript تایم‌استمپ را به بک‌اندی می‌فرستد که انتظارِ ثانیه را دارد.

چرا زمان یونیکس از ۱ ژانویهٔ ۱۹۷۰ شروع می‌شود؟

این تاریخ اوایل دههٔ ۱۹۷۰ توسط توسعه‌دهندگان یونیکس در Bell Labs به‌عنوان یک نقطهٔ شروعِ نزدیک و راحت انتخاب شد. اهمیت خاصی ندارد جز این‌که یک تاریخ «رُند» و نزدیک به زمان توسعهٔ سیستم بود. سیستم‌های دیگر اِپاک‌های متفاوتی دارند: Windows FILETIME از ۱ ژانویهٔ ۱۶۰۱ شروع می‌شود؛ زمان GPS از ۶ ژانویهٔ ۱۹۸۰؛ و NTP از ۱ ژانویهٔ ۱۹۰۰.

مشکل سال ۲۰۳۸ چیست؟

سیستم‌هایی که تایم‌استمپ یونیکس را به‌صورت عدد صحیح ۳۲-بیتی با علامت ذخیره می‌کنند، فقط می‌توانند تاریخ‌ها را تا ۱۹ ژانویهٔ ۲۰۳۸ (تایم‌استمپ 2,147,483,647) نمایش دهند. بعد از آن مقدار سرریز می‌شود و به یک عدد منفی بزرگ تبدیل می‌شود که تاریخ ۱۹۰۱ را نشان می‌دهد. سیستم‌های ۶۴-بیتی مدرن تحت تأثیر نیستند. با این حال، سیستم‌های نهفتهٔ قدیمی، پایگاه‌داده‌های قدیمی‌تر و نرم‌افزارهای ۳۲-بیتی ممکن است همچنان آسیب‌پذیر باشند و پیش از آن تاریخ نیاز به مهاجرت داشته باشند.

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

JavaScript: Math.floor(Date.now() / 1000). Python: import time; int(time.time()). PHP: time(). Bash: date +%s. PostgreSQL: EXTRACT(EPOCH FROM NOW())::int. MySQL: UNIX_TIMESTAMP(). Go: time.Now().Unix(). همهٔ این‌ها زمان فعلی را به‌صورت تعداد ثانیه از یونیکس اِپاک برمی‌گردانند.