فهرست مطالب
تبدیل تایم استمپ با این ابزار در دو جهت انجام میشود. بالای صفحه، تایماستمپ همین لحظه به ثانیه نمایش داده میشود که هر ثانیه بهروز میشود و با دکمهٔ کپی برداشته میشود. در بخش اول، تایماستمپ را وارد کنید، دهرقمی به ثانیه یا سیزدهرقمی به میلیثانیه؛ ابزار خودش تشخیص میدهد. نتیجه شش خروجی است؛ تاریخ شمسی با روز هفته، تاریخ میلادی، ساعت به وقت تهران، زمان به وقت جهانی، قالب استاندارد بینالمللی و فاصلهٔ آن لحظه تا اکنون، مثلا سیصد روز پیش. در بخش دوم، تاریخ و ساعت را انتخاب کنید تا تایماستمپ آن به ثانیه و میلیثانیه ساخته شود. رقمهای فارسی هم پذیرفته میشوند. همهٔ محاسبهها در مرورگر شما انجام میشود.
راهنمای استفاده از تبدیل تایماستمپ
- تایماستمپ (۱۰ رقمی ثانیه یا ۱۳ رقمی میلیثانیه) را وارد کنید؛ نوع آن خودکار تشخیص داده میشود.
- تاریخ معادل به شمسی، میلادی، ساعت تهران و UTC نمایش داده میشود.
- برای تبدیل برعکس، تاریخ و ساعت را در بخش دوم وارد کنید.
تایم استمپ چیست؟

رایانهها برای ذخیرهٔ زمان، سادهترین روش ممکن را ترجیح میدهند؛ یک عدد. تایماستمپ یونیکس تعداد ثانیههایی است که از یک لحظهٔ قراردادی، یعنی ساعت صفر بامداد روز اول ژانویهٔ ۱۹۷۰ به وقت جهانی، گذشته است. این لحظه را مبدأ زمانی یونیکس مینامند، چون سیستمعامل یونیکس که در همان سالها ساخته شد، زمان را اینطور میشمرد. امروز تقریبا همهٔ سیستمعاملها، پایگاههای داده و زبانهای برنامهنویسی از همین قرارداد استفاده میکنند.
مزیت این روش این است که عدد تایماستمپ به تقویم، زبان، منطقهٔ زمانی و ساعت تابستانی وابسته نیست. لحظهای که در تهران ساعت هشت صبح است و در لندن چهار و نیم صبح، تایماستمپ یکسانی دارد. مقایسهٔ دو زمان یعنی مقایسهٔ دو عدد و فاصلهٔ دو لحظه یعنی تفریق ساده. فقط وقتی زمان باید به انسان نشان داده شود، عدد به تاریخ و ساعت در تقویم و منطقهٔ زمانی مورد نظر تبدیل میشود؛ کاری که این ابزار برای تقویم شمسی و ساعت ایران انجام میدهد.
تایماستمپ دهرقمی یا سیزدهرقمی؟
تایماستمپهای امروزی، اگر به ثانیه باشند، ده رقم دارند و اگر به میلیثانیه، سیزده رقم. پایگاههای داده، سیستمعاملهای خانوادهٔ یونیکس و بسیاری از APIها ثانیه را به کار میبرند. جاوااسکریپت، جاوا و بسیاری از سرویسهای وب میلیثانیه را. ابزار از روی تعداد رقمها تشخیص میدهد؛ اگر عدد سیزده رقم یا بیشتر داشته باشد، میلیثانیه در نظر گرفته میشود و در غیر این صورت ثانیه.
اشتباه گرفتن این دو، یکی از رایجترین خطاهای برنامهنویسی با زمان است. اگر تایماستمپ میلیثانیهای را بهعنوان ثانیه بخوانید، تاریخی در هزاران سال آینده میگیرید. اگر ثانیه را بهعنوان میلیثانیه، تاریخی در روزهای اول ژانویهٔ ۱۹۷۰. اگر در گزارش یا پایگاه دادهٔ خود تاریخهایی در ۱۹۷۰ یا سالهای بسیار دور میبینید، تقریبا همیشه همین اشتباه رخ داده است. برخی سیستمها از میکروثانیه یا نانوثانیه هم استفاده میکنند که شانزده یا نوزده رقم دارند؛ برای تبدیل آنها، اول عدد را بر هزار یا یک میلیون تقسیم کنید.
تبدیل تایم استمپ به تاریخ شمسی
بیشتر ابزارهای تبدیل تایماستمپ، تاریخ میلادی و وقت جهانی را نشان میدهند و کاربر ایرانی باید دو تبدیل دیگر را خودش انجام دهد؛ از وقت جهانی به ساعت تهران و از میلادی به شمسی. این ابزار هر دو را با هم انجام میدهد. ساعت به وقت تهران محاسبه میشود و تاریخ شمسی بر اساس همان روز در تهران، نه روز در گرینویچ. این تفاوت، که در ادامه توضیح میدهیم، گاهی یک روز کامل اختلاف میسازد.
جدول زیر چند تایماستمپ شناختهشده را با تاریخ شمسی و ساعت تهران نشان میدهد. اینها خروجی واقعی همان محاسبهای است که ابزار انجام میدهد.
| تایماستمپ | زمان جهانی | تاریخ شمسی در تهران | ساعت تهران |
|---|---|---|---|
| ۰ | ۱ ژانویهٔ ۱۹۷۰، ۰۰:۰۰ | پنجشنبه ۱۱ دی ۱۳۴۸ | ۰۳:۳۰ |
| ۱۰۰۰۰۰۰۰۰۰ | ۹ سپتامبر ۲۰۰۱، ۰۱:۴۶ | یکشنبه ۱۸ شهریور ۱۳۸۰ | ۰۶:۱۶ |
| ۱۷۰۰۰۰۰۰۰۰ | ۱۴ نوامبر ۲۰۲۳، ۲۲:۱۳ | چهارشنبه ۲۴ آبان ۱۴۰۲ | ۰۱:۴۳ |
| ۱۷۷۴۰۳۸۶۰۰ | ۲۰ مارس ۲۰۲۶، ۲۰:۳۰ | شنبه ۱ فروردین ۱۴۰۵ | ۰۰:۰۰ |
| ۲۰۰۰۰۰۰۰۰۰ | ۱۸ مه ۲۰۳۳، ۰۳:۳۳ | چهارشنبه ۲۹ اردیبهشت ۱۴۱۲ | ۰۷:۰۳ |
| ۲۱۴۷۴۸۳۶۴۷ | ۱۹ ژانویهٔ ۲۰۳۸، ۰۳:۱۴ | سهشنبه ۳۰ دی ۱۴۱۶ | ۰۶:۴۴ |
چرا تاریخ یک روز جابهجا میشود؟

به ردیف سوم جدول نگاه کنید. تایماستمپ ۱۷۰۰۰۰۰۰۰۰ در وقت جهانی ساعت ده و سیزده دقیقهٔ شب چهاردهم نوامبر است، اما در تهران، که سه و نیم ساعت جلوتر است، ساعت یک و چهلوسه دقیقهٔ بامداد پانزدهم نوامبر. یعنی همان لحظه، در تقویم شمسی، اگر با وقت جهانی حساب کنید ۲۳ آبان است و اگر با وقت تهران، ۲۴ آبان. هر لحظهای بین ساعت هشت و نیم شب تا نیمهشب به وقت جهانی، در تهران روز بعد است.
این دلیل رایجترین گلایه از تاریخهای تبدیلشده است. برنامهای که تایماستمپ را بدون در نظر گرفتن منطقهٔ زمانی به تاریخ تبدیل میکند، سفارشهایی را که شبها ثبت شدهاند، یک روز زودتر نشان میدهد. گزارش فروش روزانهای که بر اساس وقت جهانی ساخته شده، فروش ساعتهای پایانی شب را به روز قبل میبرد. ابزار همیشه ساعت تهران را مبنا میگیرد و وقت جهانی را هم جداگانه نشان میدهد تا تفاوت را ببینید. ایران چند سال است ساعت تابستانی را کنار گذاشته و ساعت رسمی در تمام سال سه و نیم ساعت جلوتر از وقت جهانی است؛ برای تاریخهای قبل از آن، ابزار ساعت تابستانی آن سالها را هم در نظر میگیرد.
تبدیل تاریخ به تایم استمپ
در بخش دوم ابزار، تاریخ و ساعت را از انتخابگر مرورگر انتخاب کنید تا تایماستمپ آن به ثانیه و میلیثانیه نمایش داده شود. این بخش برای برنامهنویسانی است که باید زمان مشخصی را در کوئری پایگاه داده، فایل تنظیمات یا درخواست API بگذارند؛ مثلا همهٔ رکوردهای پس از اول ماه. نکتهٔ مهم این است که تاریخ و ساعتی که انتخاب میکنید، بر اساس منطقهٔ زمانی دستگاه خودتان تفسیر میشود. اگر رایانهٔ شما روی ساعت تهران تنظیم است، نتیجه همان چیزی است که انتظار دارید.
اگر رایانه روی منطقهٔ زمانی دیگری است، مثلا سرور یا رایانهای که روی وقت جهانی تنظیم شده، یا اگر خارج از ایران هستید، تایماستمپ ساختهشده مال آن ساعت در منطقهٔ خودتان است، نه تهران. برای بررسی، تایماستمپ ساختهشده را در بخش اول بچسبانید و ببینید ساعت تهرانش همان است که میخواستید. انتخابگر تاریخ مرورگر هم تقویم میلادی دارد؛ اگر تاریخ شمسی دارید، اول آن را با تبدیل تاریخ به میلادی تبدیل کنید.
مسئلهٔ سال ۲۰۳۸
آخرین ردیف جدول، عدد ۲۱۴۷۴۸۳۶۴۷ است؛ بزرگترین عددی که در عدد صحیح سیودوبیتی علامتدار جا میشود. سیستمهای قدیمی که تایماستمپ را در چنین عددی ذخیره میکنند، در ساعت سه و چهارده دقیقه و هفت ثانیهٔ نوزدهم ژانویهٔ ۲۰۳۸ به وقت جهانی، معادل سیام دی ۱۴۱۶ در تهران، سرریز میکنند؛ عدد ناگهان منفی میشود و تاریخ به سال ۱۹۰۱ برمیگردد. این مشکل شبیه مشکل معروف سال دوهزار است و برای همین آن را مسئلهٔ سال ۲۰۳۸ مینامند.
بیشتر سیستمعاملها، پایگاههای داده و زبانهای برنامهنویسی امروزی از عدد شصتوچهاربیتی استفاده میکنند که تا صدها میلیارد سال جا دارد. اما سیستمهای قدیمی، دستگاههای تعبیهشده مثل برخی تجهیزات صنعتی و برخی ستونهای پایگاه داده که سالها پیش طراحی شدهاند، هنوز در خطرند. اگر برنامهنویس هستید، بررسی کنید ستونهای زمان در پایگاه دادهٔ شما با چه نوعی تعریف شدهاند. تاریخهای آیندهای مثل سررسید وامهای بلندمدت، همین حالا ممکن است از ۲۰۳۸ عبور کنند.
کاربردهای روزمره برای برنامهنویسان
وقتی در گزارش خطای سرور، پاسخ API یا رکورد پایگاه داده عددی دهرقمی میبینید، احتمالا تایماستمپ است و ابزار در یک لحظه میگوید آن اتفاق کی افتاده. برای اشکالیابی توکنهای احراز هویت، که زمان صدور و انقضا را به شکل تایماستمپ دارند، ابزار نشان میدهد توکن منقضی شده یا نه؛ خروجی فاصله تا اکنون، با کلمههای پیش و بعد، این را بیواسطه میگوید. برای نوشتن کوئریهایی که بازهٔ زمانی دارند، تاریخ شروع و پایان را در بخش دوم به تایماستمپ تبدیل کنید.
قالب استاندارد بینالمللی که ابزار در خروجی نشان میدهد، رشتهای است که با سال شروع میشود و با حرف زد، به معنای وقت جهانی، تمام میشود. این قالب در APIها و فایلهای JSON رایج است، چون هم برای انسان خواناست و هم بدون ابهام. اگر JSON را بررسی میکنید که تاریخها را به این شکل یا به شکل تایماستمپ دارد، مرتبسازی JSON خواندنش را سادهتر میکند.
نمونه؛ گزارش سفارشهای یک فروشگاه
فرض کنید از پایگاه دادهٔ فروشگاه اینترنتی خروجی گرفتهاید و ستون زمان ثبت سفارش، عددهای دهرقمی دارد. مدیر فروش میخواهد بداند سفارش با تایماستمپ ۱۷۰۰۰۰۰۰۰۰ کی ثبت شده. آن را در ابزار وارد کنید؛ نتیجه چهارشنبه ۲۴ آبان ۱۴۰۲ ساعت یک و چهلوسه دقیقهٔ بامداد است. اگر گزارش با ابزاری ساخته شده بود که منطقهٔ زمانی را در نظر نمیگرفت، همین سفارش در گزارش ۲۳ آبان ثبت میشد و آمار فروش روزانه، بهویژه برای فروشگاههایی که خرید شبانهٔ زیادی دارند، نادرست میشد.
برای اینکه گزارش روزانهٔ درستی بسازید، مرز هر روز را به تایماستمپ تبدیل کنید. ساعت صفر بامداد یک روز به وقت تهران، برابر است با ساعت هشت و نیم شب روز قبل به وقت جهانی. در بخش دوم ابزار، اگر رایانهتان روی ساعت تهران است، تاریخ و ساعت صفر را انتخاب کنید تا تایماستمپ شروع روز ساخته شود. همهٔ سفارشهایی که تایماستمپشان بین شروع این روز و شروع روز بعد است، مال همان روزند.
تایماستمپهای منفی و تاریخهای قدیمی
تایماستمپ میتواند منفی هم باشد؛ برای لحظههای پیش از ۱۹۷۰. مثلا تاریخ تولد افرادی که پیش از ۱۹۷۰ به دنیا آمدهاند، در برخی سیستمها با تایماستمپ منفی ذخیره میشود. ابزار عدد منفی را هم میپذیرد و تبدیل میکند. برای تاریخهای خیلی قدیمی، تقویم میلادی که رایانهها به کار میبرند، تقویم گریگوری را به عقب امتداد میدهد، حتی برای زمانهایی که هنوز این تقویم استفاده نمیشد. برای پژوهش تاریخی، این نکته را در نظر بگیرید.
مقایسه و فاصلهٔ دو زمان
چون تایماستمپ عدد است، فاصلهٔ دو لحظه به ثانیه، فقط تفریق دو عدد است. اختلاف را بر ۶۰ تقسیم کنید تا دقیقه، بر ۳۶۰۰ تا ساعت و بر ۸۶۴۰۰ تا روز به دست آید. ابزار برای هر تایماستمپ، فاصلهٔ آن تا همین لحظه را با واحد مناسب، ثانیه، دقیقه، ساعت یا روز، و با کلمهٔ پیش یا بعد نشان میدهد. برای فاصلهٔ دو تاریخ دلخواه به روز و ماه و سال شمسی، محاسبه فاصله دو تاریخ را ببینید که ماههای شمسی با طولهای متفاوت را هم درست حساب میکند.
خطاهای رایج
خطای اول، اشتباه ثانیه و میلیثانیه است. خطای دوم، فراموش کردن منطقهٔ زمانی هنگام تبدیل تایماستمپ به تاریخ، که تاریخهای شبانه را یک روز جابهجا میکند. خطای سوم، ذخیرهٔ زمان محلی به جای تایماستمپ یا وقت جهانی در پایگاه داده؛ زمان محلی بدون منطقهٔ زمانی، در سفر، تغییر ساعت رسمی یا انتقال سرور، مبهم میشود. قاعدهٔ درست این است؛ ذخیره با وقت جهانی یا تایماستمپ، نمایش با ساعت محلی کاربر. خطای چهارم، فرض اینکه هر روز دقیقا ۸۶۴۰۰ ثانیه است؛ برای بیشتر کارها درست است، اما در کشورهایی که ساعت تابستانی دارند، روزهای تغییر ساعت ۲۳ یا ۲۵ ساعتاند.
تایماستمپ در اکسل و صفحهگسترده
اگر فایل اکسلی با ستون تایماستمپ دارید، لازم نیست تکتک عددها را در ابزار وارد کنید. اکسل تاریخ را به شکل تعداد روزهای گذشته از مبدأ خودش ذخیره میکند که با مبدأ یونیکس فرق دارد. برای تبدیل تایماستمپ ثانیهای به تاریخ اکسل، عدد را بر ۸۶۴۰۰ تقسیم کنید و عدد روزهای فاصلهٔ مبدأ اکسل تا اول ژانویهٔ ۱۹۷۰ را به آن اضافه کنید؛ نتیجه را با قالب تاریخ و ساعت نمایش دهید. این تاریخ به وقت جهانی است؛ برای ساعت تهران، سه و نیم ساعت، یعنی هفتچهلوهشتم روز، اضافه کنید. چند ردیف را با ابزار مقایسه کنید تا مطمئن شوید فرمول درست است. برای تبدیل به تاریخ شمسی، خروجی میلادی را با ابزار تبدیل تاریخ تبدیل کنید.
تایماستمپ و حریم خصوصی
تایماستمپها گاهی بیش از آنچه فکر میکنید اطلاعات میدهند. زمان دقیق ثبت سفارش، ورود به حساب یا ارسال پیام، الگوی زندگی افراد را نشان میدهد؛ چه ساعتی بیدارند، چه روزهایی کار میکنند. اگر دادهای را برای تحلیل با دیگران به اشتراک میگذارید، فکر کنید آیا زمانهای دقیق لازم است یا تاریخ روز کافی است. همهٔ تبدیلهای این ابزار در مرورگر شما انجام میشوند و عددهایی که وارد میکنید جایی فرستاده نمیشوند.
تمرین کوچک
تایماستمپ بالای صفحه را چند ثانیه نگاه کنید؛ هر ثانیه یکی بالا میرود. اگر آن را بر ۸۶۴۰۰ تقسیم کنید، تعداد روزهای گذشته از ۱۹۷۰ را میگیرید؛ عددی بیش از بیست هزار. همین عدد ساده، پشت هر ساعت و تاریخی است که روی گوشی و رایانهتان میبینید. سیستمعامل فقط این عدد را نگه میدارد و هر بار که ساعت را نشان میدهد، آن را با منطقهٔ زمانی و تقویم شما به تاریخ و ساعت آشنا تبدیل میکند؛ دقیقا همان کاری که این ابزار انجام میدهد.
ابزارهای مرتبط
برای دیدن ساعت فعلی شهرهای مختلف دنیا و تفاوتشان با تهران، ساعت جهانی را ببینید و برای تاریخ امروز به سه تقویم، تاریخ امروز. همهٔ ابزارهای برنامهنویسی در ابزارهای برنامهنویسی آمدهاند.
آخرین بازبینی محتوا: · تیم تحریریه ابزار جیبی