ToolDeck

زمان

4 tools

ابزارهای زمان ToolDeck به شما امکان می‌دهند تایم‌استمپ‌های Unix را تبدیل کنید، عبارات cron را تجزیه کنید، برنامه‌های cron را به صورت بصری ایجاد کنید و نحو cron را مستقیماً در مرورگر خود اعتبارسنجی کنید. تبدیل‌کننده تایم‌استمپ بین مقادیر Unix epoch و تاریخ‌های قابل‌خواندن انسانی در تمام فرمت‌های اصلی تبدیل می‌کند. تجزیه‌کننده عبارات Cron رشته‌های cron را به توضیحات زبان ساده با پیش‌نمایش اجراهای آینده تبدیل می‌کند. سازنده عبارات Cron از طریق یک رابط بصری گام‌به‌گام بدون ویرایش دستی، عبارات cron می‌سازد. اعتبارسنج عبارات Cron نحو cron را بررسی کرده و تجزیه فیلد به فیلد هر مؤلفه را نمایش می‌دهد. تمام پردازش‌ها به صورت محلی در مرورگر شما اجرا می‌شود — بدون رفت‌وبرگشت به سرور، بدون نیاز به حساب کاربری و بدون جمع‌آوری داده.

از تبدیل‌کننده تایم‌استمپ برای ترجمه مقادیر epoch از لاگ‌ها یا API ها استفاده کنید، از تجزیه‌کننده عبارات Cron برای خواندن یک برنامه موجود به زبان ساده، از سازنده عبارات Cron برای ساختن بصری یک عبارت جدید، یا از اعتبارسنج عبارات Cron برای تأیید نحو قبل از استقرار در محیط تولید.

ابزارهای زمان چه هستند؟

ابزارهای زمان مشکلات عملی را حل می‌کنند که توسعه‌دهندگان هنگام کار با تاریخ‌ها، تایم‌استمپ‌ها و اجرای زمان‌بندی‌شده با آن‌ها روبرو می‌شوند. تایم‌استمپ‌های Unix در ستون‌های پایگاه داده، پاسخ‌های API، فایل‌های لاگ و ادعاهای JWT ظاهر می‌شوند. مقداری خام مثل 1717200000 در حین یک حادثه باید به تاریخ قابل‌خواندن تبدیل شود. عبارات Cron در پیکربندی‌های CI/CD، مانیفست‌های Kubernetes و crontab های سرور ظاهر می‌شوند. نوشتن 0 9 * * 1-5 و اطمینان از اینکه ساعت ۹ صبح روزهای کاری (نه آخر هفته) اجرا می‌شود، نیاز به یک تجزیه‌کننده یا اعتبارسنج دارد.

ابزارهای زمان دو حوزه مجزا را پوشش می‌دهند. تبدیل تایم‌استمپ به ترجمه بین مقادیر Unix epoch (ثانیه یا میلی‌ثانیه از 1970-01-01 00:00:00 UTC) و رشته‌های تاریخ فرمت‌شده می‌پردازد. استانداردهای اصلی درگیر عبارتند از ISO 8601 (فرمت بین‌المللی تاریخ/زمان، تعریف‌شده توسط سازمان بین‌المللی استانداردسازی)، RFC 3339 (پروفایل اینترنتی ISO 8601، منتشرشده توسط IETF)، و RFC 2822 (فرمت تاریخ مورد استفاده در هدرهای ایمیل و HTTP). ابزارهای عبارت cron شامل تجزیه، تولید و اعتبارسنجی نحو برنامه پنج‌فیلدی است که در اصل در POSIX (IEEE Std 1003.1) تعریف شده. این نحو امروزه توسط crontab، تایمرهای systemd، GitHub Actions، Kubernetes CronJob ها و زمان‌بندهای ابری مانند AWS EventBridge و Google Cloud Scheduler استفاده می‌شود.

توسعه‌دهندگان در طول اشکال‌زدایی (تبدیل تایم‌استمپ‌ها از لاگ‌ها یا ردیف‌های پایگاه داده)، در طول استقرار (نوشتن و تأیید برنامه‌های cron قبل از راه‌اندازی) و در طول بررسی کد (تأیید اینکه عبارت cron یک همکار با برنامه مورد نظر مطابقت دارد) از این ابزارها استفاده می‌کنند. مهندسان QA از تبدیل تایم‌استمپ برای تأیید اینکه پاسخ‌های API حاوی مقادیر تاریخ صحیح هستند استفاده می‌کنند. مهندسان DevOps از ابزارهای cron برای راه‌اندازی برنامه‌های پشتیبان‌گیری، چرخش لاگ و وظایف تجدید گواهی‌نامه استفاده می‌کنند.

چرا از ابزارهای زمان در ToolDeck استفاده کنیم؟

ابزارهای زمان ToolDeck کاملاً در مرورگر شما اجرا می‌شوند. تایم‌استمپ‌ها و عبارات cron به صورت محلی از طریق JavaScript پردازش می‌شوند، بنابراین هیچ اطلاعاتی از دستگاه شما خارج نمی‌شود. هر ابزار روی یک کار مشخص تمرکز دارد و بدون فرایند ثبت‌نام یا محدودیت نرخ، فوراً بارگذاری می‌شود.

🔒
پردازش در مرورگر
تمام تبدیل‌ها و اعتبارسنجی‌ها در JavaScript روی دستگاه شما اجرا می‌شوند. بدون فراخوانی API، بدون لاگ‌های سرور، بدون ذخیره‌سازی داده. تایم‌استمپ‌های پایگاه‌های داده تولیدی و برنامه‌های cron داخلی روی دستگاه شما باقی می‌مانند.
نتایج فوری
یک تایم‌استمپ Unix یا عبارت cron را paste کنید و نتیجه را فوراً ببینید. بدون تأخیر رفت‌وبرگشت، بدون صف، بدون نشانگر بارگذاری.
📐
خروجی منطبق با استاندارد
تبدیل‌های تایم‌استمپ خروجی ISO 8601 (RFC 3339) و RFC 2822 تولید می‌کنند. تجزیه cron از فرمت پنج‌فیلدی POSIX به علاوه افزونه‌های رایج مانند فیلدهای ثانیه، کاراکترهای L (آخرین)، W (نزدیک‌ترین روز کاری) و # (n-امین روز هفته) پشتیبانی می‌کند.
🔓
بدون نیاز به حساب کاربری
صفحه را باز کنید و شروع به کار کنید. بدون ثبت‌نام، بدون کلید API، بدون محدودیت استفاده. ابزار را بوک‌مارک کنید و هر وقت نیاز داشتید از آن استفاده کنید.

موارد استفاده ابزارهای زمان

مشکلات تایم‌استمپ و cron در کارهای backend، DevOps و QA دائماً پیش می‌آیند.

تحلیل لاگ
تایم‌استمپ‌های epoch در لاگ‌های برنامه را به تاریخ‌های قابل‌خواندن تبدیل کنید تا رویدادها را در طول بررسی حوادث با هم مرتبط کنید. سریعاً تشخیص دهید که یک مقدار ۱۰ رقمی یا ۱۳ رقمی ثانیه است یا میلی‌ثانیه.
زمان‌بندی CI/CD
عبارات cron را برای گردش‌های کاری GitHub Actions، pipeline های Jenkins یا برنامه‌های GitLab CI قبل از commit کردن ایجاد و اعتبارسنجی کنید. پنج زمان اجرای بعدی را پیش‌نمایش کنید تا برنامه را تأیید کنید.
پیکربندی CronJob کوبرنتیز
یک عبارت cron را تجزیه کنید تا زمان‌های اجرای بعدی را پیش‌نمایش کرده و تأیید کنید که با برنامه Kubernetes CronJob مورد نظر مطابقت دارد.
اشکال‌زدایی پایگاه داده
تایم‌استمپ‌های Unix ذخیره‌شده در ستون‌های پایگاه داده را در حین بررسی مشکلات داده به تاریخ‌های قابل‌خواندن ترجمه کنید.
پایش و هشداردهی
عبارات cron برای قوانین هشداردهی Prometheus، برنامه‌های گزارش Grafana یا پنجره‌های نگهداری PagerDuty بنویسید. نحو را قبل از افزودن به پیکربندی‌های Terraform یا Helm اعتبارسنجی کنید.
بازرسی پاسخ API
تایم‌استمپ‌های epoch بازگردانده‌شده توسط REST API ها را رمزگشایی کنید تا تأیید کنید که فیلدهای created_at، updated_at و expires_at حاوی مقادیر مورد انتظار هستند.

مرجع فرمت‌های زمانی و نحو Cron

دو حوزه برای آشنایی: فرمت‌های تایم‌استمپ مورد استفاده در API ها، پایگاه‌های داده و لاگ‌ها؛ و نحو عبارت cron مورد استفاده توسط Unix cron، Kubernetes، GitHub Actions و زمان‌بندهای ابری.

فرمت‌های رایج تایم‌استمپ

فرمتمثالاستاندارد / توضیح
1717200000ثانیه‌های UnixPOSIX / IEEE Std 1003.1
1717200000000میلی‌ثانیه‌های UnixJavaScript Date.now(), Java
2024-06-01T00:00:00.000ZUTC با میلی‌ثانیهISO 8601 / RFC 3339
2024-06-01T00:00:00+02:00با افست UTCISO 8601 / RFC 3339
Sat, 01 Jun 2024 00:00:00 +0000هدرهای ایمیل / HTTPRFC 2822
2024-06-01فقط تاریخISO 8601 (calendar date)

فیلدهای عبارت Cron

فیلدمقادیر مجازکاراکترهای خاص
دقیقه0–59* , - /
ساعت0–23* , - /
روز ماه1–31* , - / ? L W
ماه1–12 or JAN–DEC* , - /
روز هفته0–6 or SUN–SAT* , - / ? L #

cron استاندارد پنج‌فیلدی (از دقیقه تا روز هفته) توسط POSIX (IEEE Std 1003.1) تعریف شده و توسط crontab، systemd، Kubernetes CronJob ها، GitHub Actions و اکثر پلتفرم‌های CI/CD استفاده می‌شود. برخی سیستم‌ها مانند Quartz و Spring یک فیلد ششم برای ثانیه‌ها اضافه می‌کنند. AWS EventBridge از یک نوع شش‌فیلدی با فیلد سال استفاده می‌کند. کاراکترهای L (آخرین)، W (نزدیک‌ترین روز کاری) و # (n-امین رخداد) افزونه‌هایی هستند که توسط سیستم‌های سازگار با Quartz پشتیبانی می‌شوند اما توسط POSIX cron پشتیبانی نمی‌شوند.

چگونه ابزار زمانی مناسب را انتخاب کنیم

هر ابزار زمانی یک وظیفه متفاوت را کنترل می‌کند؛ چهار ابزار می‌توانند در یک گردش کار واحد نیز با هم ترکیب شوند. هر بار که با یک مقدار epoch خام در لاگ‌ها، پاسخ‌های API یا ستون‌های پایگاه داده روبرو می‌شوید از تبدیل‌کننده تایم‌استمپ استفاده کنید. از ابزارهای cron با هم استفاده کنید — سازنده برای ساختن عبارت، تجزیه‌کننده برای پیش‌نمایش زمان‌های اجرای آینده، و اعتبارسنج برای تأیید نحو — قبل از commit کردن یک برنامه به یک مانیفست یا فایل پیکربندی.

  1. 1
    اگر نیاز دارید یک تایم‌استمپ Unix را به تاریخ قابل‌خواندن تبدیل کنید یا برعکستبدیل‌کننده تایم‌استمپ
  2. 2
    اگر نیاز دارید بفهمید یک عبارت cron موجود چه کاری انجام می‌دهد و ببینید کی بعدی اجرا می‌شودتجزیه‌کننده عبارات Cron
  3. 3
    اگر نیاز دارید یک عبارت cron جدید از ابتدا با استفاده از رابط بصری بسازیدسازنده عبارات Cron
  4. 4
    اگر نیاز دارید بررسی کنید که آیا یک عبارت cron از نظر نحوی معتبر است و هر فیلد را بازرسی کنیداعتبارسنج عبارات Cron

برای یک گردش کار cron کامل: عبارت را در سازنده بسازید، زمان‌های اجرای بعدی را در تجزیه‌کننده پیش‌نمایش کنید، و نحو را در اعتبارسنج قبل از commit به یک مانیفست یا crontab تأیید کنید. اگر تایم‌استمپ‌ها را از یک API یا پایگاه داده اشکال‌زدایی می‌کنید، تبدیل‌کننده تایم‌استمپ هم تایم‌استمپ‌های Unix ثانیه و هم میلی‌ثانیه را کنترل می‌کند و خروجی ISO 8601، RFC 2822 و تاریخ‌های قالب‌بندی‌شده محلی تولید می‌کند. تبدیل‌کننده تایم‌استمپ همچنین برای بازرسی JWT مفید است: ادعاهای exp (انقضا) و iat (زمان صدور) در یک JSON Web Token تایم‌استمپ‌های Unix بر حسب ثانیه هستند و paste کردن هر یک از مقادیر در تبدیل‌کننده زمان دقیق صدور یا پنجره انقضا را بدون نوشتن هیچ کدی نمایان می‌کند.

سوالات متداول

تایم‌استمپ Unix چیست؟
تایم‌استمپ Unix تعداد ثانیه‌ها (یا میلی‌ثانیه‌ها، بسته به سیستم) سپری‌شده از 1970-01-01 00:00:00 UTC، معروف به Unix epoch، است. این مقدار مستقل از منطقه زمانی است: همان تایم‌استمپ در همه جای دنیا به همان لحظه مطلق اشاره می‌کند. JavaScript از تایم‌استمپ‌های میلی‌ثانیه‌ای (Date.now()) استفاده می‌کند، در حالی که اکثر ابزارهای Unix و پایگاه‌های داده از ثانیه استفاده می‌کنند.
عبارت cron چیست؟
عبارت cron یک رشته از پنج فیلد جداشده با فاصله است که یک برنامه تکرارشونده را تعریف می‌کند: دقیقه، ساعت، روز ماه، ماه و روز هفته. این فرمت در Unix نسخه ۷ (۱۹۷۹) معرفی شد و اکنون توسط crontab، تایمرهای systemd، Kubernetes CronJob ها، GitHub Actions، AWS EventBridge و بسیاری از زمان‌بندهای دیگر استفاده می‌شود. هر فیلد مقادیر منفرد (5)، محدوده‌ها (1-5)، فهرست‌ها (1,3,5)، مقادیر گام (*/15) و نمادهای عمومی (*) می‌پذیرد. برای مثال، 30 9 * * 1-5 یعنی ساعت ۹:۳۰ UTC روزهای کاری.
چگونه بین تایم‌استمپ‌های ثانیه و میلی‌ثانیه تبدیل کنم؟
یک تایم‌استمپ ثانیه را در ۱۰۰۰ ضرب کنید تا میلی‌ثانیه بگیرید. یک تایم‌استمپ میلی‌ثانیه را بر ۱۰۰۰ تقسیم کنید (و قسمت صحیح نتیجه را بگیرید) تا ثانیه بگیرید. یک تایم‌استمپ ثانیه معمولاً ۱۰ رقم دارد — برای مثال، 1717200000 — در حالی که یک تایم‌استمپ میلی‌ثانیه ۱۳ رقم دارد، مانند 1717200000000. اشتباه گرفتن این دو یکی از رایج‌ترین باگ‌های تایم‌استمپ است.
*/5 در یک عبارت cron به چه معناست؟
نحو */5 به معنای «هر مقدار پنجم» در فیلد مربوطه است. در فیلد دقیقه، */5 کار را در دقیقه‌های ۰، ۵، ۱۰، ۱۵، ۲۰، ۲۵، ۳۰، ۳۵، ۴۰، ۴۵، ۵۰ و ۵۵ اجرا می‌کند. عملگر گام (/) با محدوده‌ها هم کار می‌کند: 1-30/5 یعنی هر ۵ دقیقه یکبار از ۱ تا ۳۰.
چرا باید تایم‌استمپ‌ها را در UTC ذخیره کنم؟
ذخیره‌سازی در UTC ابهام ناشی از انتقال‌های ساعت تابستانی، عدم تطابق منطقه زمانی سرور و تجمیع داده‌های بین‌منطقه‌ای را برطرف می‌کند. فقط در لایه نمایش (رابط کاربری یا مرحله رندر گزارش) به زمان محلی تبدیل کنید. هنگامی که تایم‌استمپ‌ها به زمان محلی ذخیره می‌شوند، انتقال‌های ساعت تابستانی شکاف‌ها و همپوشانی‌هایی ایجاد می‌کنند: ساعت ۲:۳۰ صبح ممکن است وجود نداشته باشد (جهش به جلو) یا دوبار رخ دهد (بازگشت به عقب). UTC چنین انتقال‌هایی ندارد. این رویکرد در سیستم‌های توزیع‌شده یک روش استاندارد است و توسط یادداشت فرمت‌های تاریخ و زمان W3C توصیه می‌شود.
ISO 8601 چیست؟
ISO 8601 استاندارد بین‌المللی برای فرمت‌های رشته تاریخ و زمان است. رایج‌ترین فرم آن YYYY-MM-DDTHH:MM:SS.sssZ است، که پسوند Z به معنای UTC است. رشته‌های ISO 8601 به ترتیب لغوی به ترتیب زمانی مرتب می‌شوند، که آن‌ها را برای فایل‌های لاگ، فهرست‌های پایگاه داده و پاسخ‌های API کاربردی می‌کند.
آیا عبارات cron می‌توانند هر ثانیه اجرا شوند؟
cron استاندارد پنج‌فیلدی از زمان‌بندی زیر دقیقه پشتیبانی نمی‌کند. کوچک‌ترین بازه یک بار در دقیقه است (با استفاده از * در فیلد دقیقه). برخی سیستم‌ها مانند @Scheduled اسپرینگ و Quartz یک فیلد ششم برای ثانیه‌ها اضافه می‌کنند که اجرای به ازای هر ثانیه را ممکن می‌سازد. Kubernetes CronJob ها و crontab از ثانیه‌ها پشتیبانی نمی‌کنند.
مشکل سال ۲۰۳۸ چیست؟
سیستم‌هایی که تایم‌استمپ‌های Unix را به صورت اعداد صحیح علامت‌دار ۳۲ بیتی ذخیره می‌کنند در تاریخ 2038-01-19 ساعت 03:14:07 UTC سرریز خواهند کرد. حداکثر مقدار یک عدد صحیح علامت‌دار ۳۲ بیتی 2,147,483,647 است که دقیقاً به آن لحظه مربوط می‌شود. پس از سرریز، شمارنده به یک عدد منفی بزرگ تبدیل می‌شود که نشان‌دهنده تاریخی در دسامبر ۱۹۰۱ است. سیستم‌ها و زبان‌های مدرن ۶۴ بیتی — JavaScript، Python 3، Go، Rust — تحت تأثیر نیستند. دستگاه‌های جاسازی‌شده قدیمی، تایم‌استمپ‌های فایل‌سیستم ext3، ستون‌های TIMESTAMP قدیمی‌تر MySQL و برخی پروتکل‌های باینری در معرض خطر باقی می‌مانند.