راهنمای فنی
از Unix Timestamp به تاریخ: ثانیه، میلیثانیه و UTC توضیح داده شده
Unix timestamp را به تاریخ تبدیل کنید. ثانیه در برابر میلیثانیه، UTC در برابر وقت محلی، ISO 8601 و برگشت از تاریخ به زمان epoch را ببینید.
Unix timestamp زمان را نسبت به Unix epoch نشان میدهد: 1970-01-01 00:00:00 UTC. معمولاً بهصورت ثانیه از epoch یا میلیثانیه از epoch ذخیره میشود.
برای تبدیل درست، اول باید واحد را بدانید. 1720000000 ثانیه برابر 2024-07-03 09:46:40 UTC است. 1720000000000 میلیثانیه همان لحظه است.
timestamp یک لحظه را مشخص میکند. UTC، وقت محلی یا یک پهنهٔ IANA فقط نحوهٔ نمایش آن لحظه را عوض میکند.
این راهنمای تبدیل است: timestamp به تاریخ، تاریخ به timestamp، UTC در برابر محلی، و ISO 8601. اگر مقداری ناگهان تاریخ 1970 شود، معمولاً ناهماهنگی ثانیه/میلیثانیه است—Unix Timestamp: ثانیه در برابر میلیثانیه — چرا تاریخ ۱۹۷۰ میشود را ببینید.
Unix Timestamp چیست؟
Unix timestamp، Unix time و epoch time معمولاً یعنی زمان سپریشده از 1970-01-01 00:00:00 UTC. این عدد رشتهٔ تاریخ قالببندیشده با برچسب منطقهٔ زمانی نیست. همان لحظه میتواند در UTC، نیویورک، توکیو یا سئول ساعت دیگری نشان داده شود. Unix timestamp همیشه ثانیه نیست—میلیثانیه در عمل رایج است.
Unix Epoch چیست؟
Unix epoch برابر 1970-01-01 00:00:00 UTC است. timestamp برابر 0 همان لحظه است. timestamp مثبت بعد از epoch است. بعضی سامانهها timestamp منفی برای زمان پیش از epoch میپذیرند، اما پشتیبانی زبان و بازهٔ تاریخ فرق میکند.
timestamp من ثانیه است یا میلیثانیه؟
1720000000 ثانیه است؛ 1720000000000 میلیثانیه است؛ یک لحظهاند. نشانهٔ عملی: حدود 10 رقم اغلب ثانیه است، حدود 13 رقم اغلب میلیثانیه. شمار رقم فقط یک اکتشاف سرانگشتی است. تاریخ گذشته یا آینده، واحد دیگر یا epoch سفارشی ممکن است جور دیگری به نظر برسد. مبدل تاریخ و زمان میتواند با ثانیه، میلیثانیه یا خودکار تبدیل کند (≤10 رقم بهعنوان ثانیه، ≥13 بهعنوان میلیثانیه)—وقتی واحد را میدانید همان را برگزینید.
چرا واحد نادرست تاریخ نادرست میسازد؟
JavaScript Date میلیثانیه انتظار دارد. دادن 1720000000 چنانکه میلیثانیه باشد 1970-01-20 21:46:40 UTC میدهد. میلیثانیه را ثانیه گرفتن، یا برعکس، به تاریخی بسیار متفاوت میرسد. برای مسیر عیبیابی 1970، Unix Timestamp: ثانیه در برابر میلیثانیه — چرا تاریخ ۱۹۷۰ میشود را ببینید.
new Date(1720000000);
// 1970-01-20T21:46:40.000Z
چگونه Unix timestamp بر حسب ثانیه را تبدیل کنیم
ثانیه را در 1000 ضرب کنید تا میلیثانیه بهدست آید. JavaScript Date بر پایهٔ میلیثانیه است، پس new Date(timestamp * 1000) را به کار ببرید.
const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z
چگونه timestamp میلیثانیه را تبدیل کنیم
میلیثانیه را مستقیم به Date بدهید. timestamp میلیثانیه را دوباره در 1000 ضرب نکنید.
const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z
چرا همان timestamp ساعت دیگری نشان میدهد؟
Unix timestamp یک لحظه است. نمایش آن در UTC، وقت محلی یا پهنهٔ IANA برگزیده صفحهٔ ساعت را عوض میکند. برای 1720000000000، UTC برابر 2024-07-03 09:46:40 است. America/New_York در آن روز 2024-07-03 05:46:40 (EDT) است. Asia/Seoul برابر 2024-07-03 18:46:40 (UTC+9) است. آن مقادیر نیویورک و سئول از Intl میآیند، نه از شعار افست ثابت.
آیا Unix timestamp منطقهٔ زمانی دارد؟
خیر. America/New_York یا Asia/Seoul را ذخیره نمیکند. timestamp یک لحظه را مشخص میکند. منطقهٔ زمانی وقتی اعمال میشود که آن لحظه را بهصورت تاریخ و ساعت خوانا قالب ببندید. epoch نسبت به UTC تعریف شده؛ خود عدد «فیلد منطقهٔ زمانی UTC» نیست.
Unix Timestamp در برابر ISO 8601
1720000000 و 2024-07-03T09:46:40Z میتوانند یک لحظه را نشان دهند. Unix مقدار عددی زمان سپریشده است. ISO 8601 رشتهٔ خوانای تاریخ-ساعت است و ممکن است با Z (UTC) یا افست عددی تمام شود. Z یعنی UTC؛ گاهی زولو خوانده میشود. یک قالب نیستند.
Unix timestamp فعلی را چگونه میگیرید؟
در JavaScript، Date.now() میلیثانیه است. Math.floor(Date.now() / 1000) ثانیه است. «اکنون» را در مقاله ثابت ننویسید؛ جابهجا میشود.
Date.now();
Math.floor(Date.now() / 1000);
آیا میتوان تاریخ را دوباره به Unix timestamp تبدیل کرد؟
بله. از رشتهٔ ISO صریح UTC، getTime() میلیثانیه برمیگرداند؛ بر 1000 تقسیم کنید و برای ثانیه به پایین گرد کنید.
const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000
با قالبهای تاریخ مبهم محتاط باشید
03/07/2024 بسته به محل میتواند ۷ مارس یا ۳ ژوئیه باشد. تاریخ و ساعت به سبک ISO با منطقهٔ زمانی یا افست را ترجیح دهید. مبدل تاریخ و زمان تاریخهای عددی مبهم مانند 01/02/2026 را رد میکند و گزینندهٔ تاریخ یا مقدار به سبک ISO میخواهد.
ساعت تابستانی چه میشود؟
Unix timestamp پرچم ساعت تابستانی ذخیره نمیکند. نمایش محلی قواعد پهنه را اعمال میکند. America/New_York در زمستان و تابستان افستهای متفاوت دارد، پس «نیویورک UTC-5 است» همیشه درست نیست.
آیا Unix timestamp ثانیهٔ کبیسه دارد؟
زمان معمول POSIX/Unix ثانیههای کبیسه را بهعنوان ثانیهٔ SI اضافه روی مقیاس پیوسته نمیشمارد. پلتفرمها ممکن است فرق کنند. برای تبدیل روزمره میتوان این جزئیات را نادیده گرفت.
اشتباههای رایج در تبدیل Unix timestamp
این درهمآمیختگیها تاریخ نادرست یا صفحهٔ ساعت نادرست میسازند:
ثانیه بهعنوان میلیثانیه
مقدار ثانیهٔ امروزی آنگاه نزدیک 1970 در JavaScript Date مینشیند.
میلیثانیه بهعنوان ثانیه
تاریخ دور به آینده میپرد.
10 یا 13 رقم را قانون پنداشتن
شمار رقم نشانه است، ضمانت نیست.
خلط UTC با وقت محلی
لحظه یکی است؛ ساعت نمایشدادهشده ممکن است فرق کند.
فرض اینکه منطقهٔ زمانی داخل عدد است
نامهای IANA هنگام نمایش اعمال میشوند، در timestamp ذخیره نمیشوند.
تاریخ مبهم، شعار ساعت تابستانی، یا ×1000 اضافه
ورودی به سبک ISO به کار ببرید. timestamp میلیثانیه را دوباره ضرب نکنید.
نمونههای UTC بررسیشده
این ساعتهای UTC محاسبه شدهاند، حدس زده نشدهاند:
| ورودی | واحد | UTC |
|---|---|---|
| 0 | ثانیه | 1970-01-01 00:00:00 |
| 1720000000 | ثانیه | 2024-07-03 09:46:40 |
| 1720000000000 | میلیثانیه | 2024-07-03 09:46:40 |
| 1720000000 | میلیثانیه | 1970-01-20 21:46:40 |
راهنمای ساده برای تصمیم تبدیل
اگر منبع واحد را نام میبرد، همان را به کار ببرید. اگر نه، شمار رقم نشانه است—سپس ببینید تاریخ باورپذیر است. وقتی API به ms نیاز دارد ثانیه را به میلیثانیه تبدیل کنید. برای نمایش UTC، محلی یا پهنهٔ IANA را برگزینید. ISO 8601 برای ذخیره و تبادل مفید است.
- Unix timestamp دارید
- واحد مشخص است؟ به کار ببرید؛ وگرنه بزرگی را بسنجید
- ثانیه؟ اگر API میلیثانیه میخواهد ×1000
- میلیثانیه؟ در API مبتنی بر ms مستقیم به کار ببرید
- بهصورت UTC، محلی یا پهنهٔ IANA نمایش دهید
- رشته لازم است؟ ISO 8601 ممکن است بگنجد
timestamp نقطهای در زمان را مشخص میکند. UTC، وقت محلی یا منطقهٔ زمانی فقط تصمیم میگیرند آن لحظه چگونه به شخص نشان داده شود.
Unix timestamp را در مرورگر تبدیل کنید
NEXNARA مبدل تاریخ و زمان ثانیه و میلیثانیهٔ Unix را تبدیل میکند، UTC و وقت محلی و ISO 8601 را نشان میدهد و میان پهنههای زمانی IANA تبدیل میکند.
حالت Unix از ثانیه، میلیثانیه، واحد خودکار، زمان جاری و تاریخ-به-timestamp پشتیبانی میکند. حالت منطقهٔ زمانی نامهای IANA را میجوید، پهنهٔ مرورگر را به کار میبرد و افستهای Intl آگاه از ساعت تابستانی را اعمال میکند. حالت قالب خروجی خوانا بر پایهٔ محل، نمایش 12/24 ساعته و نگهبان تاریخ مبهم دارد. اختلاف تاریخ حالت جداگانه است.
تبدیل از APIهای Date و Intl مرورگر استفاده میکند. مقدارهایی بیرون از آنچه Date میتواند بازنمایی کند رد میشوند. واحد خودکار مقدار 11–12 رقمی را حدس نمیزند؛ ثانیه یا میلیثانیه را برگزینید.
خودِ تبدیل تاریخ و timestamp در مرورگر شما رخ میدهد. ورودیها برای تبدیل به سرور NEXNARA فرستاده نمیشوند. تبلیغات و دیگر ویژگیهای سایت همچنان از شبکه استفاده میکنند.
یک timestamp در مبدل تاریخ و زمان بچسبانید و پیش از برگزیدن واحد، UTC و وقت محلی و ISO 8601 را مقایسه کنید.
FAQ
Unix timestamp را چگونه به تاریخ تبدیل کنم؟
واحد را بدانید. برای ثانیه در JavaScript از new Date(n * 1000) استفاده کنید. برای میلیثانیه از new Date(n). سپس بهصورت UTC، محلی یا یک پهنه قالب ببندید.
Unix timestamp ثانیه است یا میلیثانیه؟
هر دو ممکن است. حدود 10 رقم اغلب ثانیه و حدود 13 اغلب میلیثانیه است، اما این اکتشاف سرانگشتی است، قاعده نیست.
چرا timestamp من 1970 نشان میدهد؟
معمولاً مقدار ثانیه بهعنوان میلیثانیه خوانده شده. Unix Timestamp: ثانیه در برابر میلیثانیه — چرا تاریخ ۱۹۷۰ میشود را ببینید.
آیا Unix timestamp همیشه UTC است؟
epoch نسبت به UTC تعریف شده و عدد یک لحظه را مشخص میکند. منطقهٔ زمانی نمایش جداست. «فیلد منطقهٔ زمانی UTC» ذخیرهشده نیست.
آیا Unix timestamp منطقهٔ زمانی دارد؟
خیر. شناسهٔ IANA همراه ندارد. منطقهٔ زمانی هنگام قالببندی لحظه اعمال میشود.
تاریخ را چگونه به Unix timestamp تبدیل کنم؟
از رشتهٔ ISO UTC، date.getTime() میلیثانیه است؛ Math.floor(date.getTime() / 1000) ثانیه است.