Thời gian

4 tools

Các công cụ thời gian của ToolDeck cho phép bạn chuyển đổi dấu thời gian Unix, phân tích biểu thức cron, tạo lịch cron theo giao diện trực quan và xác thực cú pháp cron ngay trên trình duyệt. Bộ chuyển đổi dấu thời gian dịch giữa các giá trị epoch Unix và ngày dễ đọc theo tất cả các định dạng phổ biến. Trình phân tích biểu thức cron phân tích chuỗi cron thành mô tả ngôn ngữ tự nhiên kèm xem trước các lần thực thi sắp tới. Trình tạo biểu thức cron xây dựng biểu thức cron qua giao diện trực quan từng bước mà không cần chỉnh sửa thủ công. Trình xác thực biểu thức cron kiểm tra cú pháp cron và hiển thị phân tích từng trường của mỗi thành phần. Mọi quá trình xử lý đều chạy cục bộ trên trình duyệt của bạn, không cần kết nối đến máy chủ, không yêu cầu tài khoản và không thu thập dữ liệu.

Dùng Bộ chuyển đổi dấu thời gian khi cần dịch giá trị epoch từ nhật ký hoặc API, Trình Phân Tích Biểu Thức Cron để giải mã lịch hiện có thành ngôn ngữ dễ hiểu, Trình tạo biểu thức Cron để xây dựng biểu thức mới theo giao diện trực quan, hoặc Trình xác thực biểu thức Cron để kiểm tra cú pháp trước khi triển khai lên production.

Công Cụ Thời Gian Là Gì?

Công cụ thời gian giải quyết các vấn đề thực tế mà lập trình viên gặp phải khi làm việc với ngày tháng, dấu thời gian và thực thi theo lịch. Dấu thời gian Unix xuất hiện trong các cột cơ sở dữ liệu, phản hồi API, tệp nhật ký và các trường trong JWT. Đọc giá trị thô như 1717200000 trong quá trình xử lý sự cố đòi hỏi phải chuyển đổi sang ngày dễ đọc. Biểu thức cron xuất hiện trong các tệp cấu hình CI/CD, manifest Kubernetes và crontab máy chủ. Viết 0 9 * * 1-5 và chắc chắn rằng nó chạy lúc 9 giờ sáng vào các ngày trong tuần (và không chạy vào cuối tuần) đòi hỏi phải có trình phân tích hoặc trình xác thực.

Hai lĩnh vực riêng biệt thuộc về công cụ thời gian. Chuyển đổi dấu thời gian liên quan đến việc dịch giữa các giá trị epoch Unix (số giây hoặc mili giây kể từ 1970-01-01 00:00:00 UTC) và các chuỗi ngày được định dạng. Các tiêu chuẩn chính liên quan là ISO 8601 (định dạng ngày/giờ quốc tế, được định nghĩa bởi Tổ chức Tiêu chuẩn hóa Quốc tế), RFC 3339 (hồ sơ internet của ISO 8601, được IETF công bố) và RFC 2822 (định dạng ngày dùng trong tiêu đề email và HTTP). Công cụ biểu thức cron bao gồm phân tích, tạo và xác thực cú pháp lịch năm trường được định nghĩa ban đầu trong POSIX (IEEE Std 1003.1). Cú pháp này ngày nay được sử dụng bởi crontab, systemd timers, GitHub Actions, Kubernetes CronJobs và các bộ lập lịch đám mây như AWS EventBridge và Google Cloud Scheduler.

Lập trình viên dùng các công cụ này trong quá trình gỡ lỗi (chuyển đổi dấu thời gian từ nhật ký hoặc hàng trong cơ sở dữ liệu), trong quá trình triển khai (viết và xác minh lịch cron trước khi đưa vào hoạt động) và trong quá trình review code (xác nhận rằng biểu thức cron của đồng nghiệp khớp với lịch dự kiến). Kỹ sư QA sử dụng chuyển đổi dấu thời gian để xác minh rằng các phản hồi API chứa giá trị ngày đúng. Kỹ sư DevOps sử dụng công cụ cron để thiết lập lịch sao lưu, xoay nhật ký và các công việc gia hạn chứng chỉ.

Tại Sao Dùng Công Cụ Thời Gian Trên ToolDeck?

Các công cụ thời gian của ToolDeck chạy hoàn toàn trong trình duyệt của bạn. Dấu thời gian và biểu thức cron được xử lý cục bộ qua JavaScript, nên không có dữ liệu nào rời khỏi máy của bạn. Mỗi công cụ nhắm đến một tác vụ duy nhất và tải tức thì mà không cần đăng ký hay giới hạn tốc độ.

🔒
Xử Lý Chỉ Trên Trình Duyệt
Mọi chuyển đổi và xác thực đều thực thi bằng JavaScript trên thiết bị của bạn. Không có API call, không có nhật ký máy chủ, không lưu giữ dữ liệu. Dấu thời gian từ cơ sở dữ liệu production và lịch cron nội bộ ở lại trên máy của bạn.
Kết Quả Tức Thì
Dán dấu thời gian Unix hoặc biểu thức cron và xem kết quả ngay lập tức. Không có độ trễ do kết nối, không có hàng đợi, không có vòng tròn tải.
📐
Đầu Ra Tuân Thủ Tiêu Chuẩn
Chuyển đổi dấu thời gian tạo ra đầu ra ISO 8601 (RFC 3339) và RFC 2822. Phân tích cron hỗ trợ định dạng năm trường theo POSIX cùng các mở rộng phổ biến như trường giây, ký tự L (cuối), W (ngày trong tuần gần nhất) và # (ngày trong tuần thứ n).
🔓
Không Cần Tài Khoản
Mở trang và bắt đầu làm việc. Không cần đăng ký, không cần API key, không giới hạn sử dụng. Đánh dấu trang và dùng khi cần.

Các Trường Hợp Sử Dụng Công Cụ Thời Gian

Cả vấn đề dấu thời gian lẫn cron đều xuất hiện thường xuyên trong công việc backend, DevOps và QA.

Phân Tích Nhật Ký
Chuyển đổi dấu thời gian epoch trong nhật ký ứng dụng sang ngày dễ đọc để tương quan các sự kiện trong quá trình điều tra sự cố. Nhanh chóng xác định xem giá trị 10 chữ số hay 13 chữ số là giây hay mili giây.
Lập Lịch CI/CD
Tạo và xác thực biểu thức cron cho workflow GitHub Actions, pipeline Jenkins hoặc lịch GitLab CI trước khi commit. Xem trước năm lần thực thi tiếp theo để xác nhận lịch.
Thiết Lập Kubernetes CronJob
Phân tích biểu thức cron để xem trước các lần chạy tiếp theo và xác nhận nó khớp với lịch Kubernetes CronJob dự kiến.
Gỡ Lỗi Cơ Sở Dữ Liệu
Dịch dấu thời gian Unix lưu trữ trong các cột cơ sở dữ liệu sang ngày dễ đọc trong khi điều tra các vấn đề về dữ liệu.
Giám Sát và Cảnh Báo
Viết biểu thức cron cho các quy tắc cảnh báo Prometheus, lịch báo cáo Grafana hoặc cửa sổ bảo trì PagerDuty. Xác thực cú pháp trước khi thêm vào cấu hình Terraform hoặc Helm.
Kiểm Tra Phản Hồi API
Giải mã dấu thời gian epoch được trả về bởi REST API để xác minh rằng các trường created_at, updated_at và expires_at chứa các giá trị mong đợi.

Tài Liệu Tham Khảo Định Dạng Thời Gian và Cú Pháp Cron

Hai lĩnh vực cần nắm: định dạng dấu thời gian dùng trong API, cơ sở dữ liệu và nhật ký; và cú pháp biểu thức cron dùng bởi Unix cron, Kubernetes, GitHub Actions và các bộ lập lịch đám mây.

Các Định Dạng Dấu Thời Gian Phổ Biến

Định dạngVí dụTiêu chuẩn / Ghi chú
1717200000Unix giâyPOSIX / IEEE Std 1003.1
1717200000000Unix mili giâyJavaScript Date.now(), Java
2024-06-01T00:00:00.000ZUTC với mili giâyISO 8601 / RFC 3339
2024-06-01T00:00:00+02:00Với độ lệch UTCISO 8601 / RFC 3339
Sat, 01 Jun 2024 00:00:00 +0000Tiêu đề Email / HTTPRFC 2822
2024-06-01Chỉ ngàyISO 8601 (calendar date)

Các Trường Biểu Thức Cron

TrườngGiá trị cho phépKý tự đặc biệt
Phút0–59* , - /
Giờ0–23* , - /
Ngày trong tháng1–31* , - / ? L W
Tháng1–12 or JAN–DEC* , - /
Ngày trong tuần0–6 or SUN–SAT* , - / ? L #

Cron năm trường tiêu chuẩn (phút đến ngày trong tuần) được định nghĩa bởi POSIX (IEEE Std 1003.1) và được sử dụng bởi crontab, systemd, Kubernetes CronJobs, GitHub Actions và hầu hết các nền tảng CI/CD. Một số hệ thống như Quartz và Spring thêm trường thứ sáu cho giây. AWS EventBridge sử dụng biến thể sáu trường với trường năm. Các ký tự L (cuối), W (ngày trong tuần gần nhất) và # (lần xuất hiện thứ n) là các mở rộng được hỗ trợ bởi các hệ thống tương thích Quartz nhưng không được POSIX cron hỗ trợ.

Cách Chọn Công Cụ Thời Gian Phù Hợp

Mỗi công cụ thời gian xử lý một tác vụ khác nhau; bốn công cụ cũng có thể kết hợp trong một quy trình duy nhất. Dùng Bộ chuyển đổi dấu thời gian khi gặp giá trị epoch thô trong nhật ký, phản hồi API hoặc cột cơ sở dữ liệu. Dùng các công cụ cron cùng nhau — Trình tạo để xây dựng biểu thức, Trình phân tích để xem trước các lần chạy tiếp theo và Trình xác thực để xác nhận cú pháp — trước khi commit lịch vào manifest hoặc tệp cấu hình.

  1. 1
    Nếu bạn cần chuyển đổi dấu thời gian Unix sang ngày dễ đọc hoặc ngược lạiBộ chuyển đổi dấu thời gian
  2. 2
    Nếu bạn cần hiểu biểu thức cron hiện có làm gì và xem khi nào nó chạy tiếp theoTrình Phân Tích Biểu Thức Cron
  3. 3
    Nếu bạn cần xây dựng biểu thức cron mới từ đầu bằng giao diện trực quanTrình tạo biểu thức Cron
  4. 4
    Nếu bạn cần kiểm tra xem biểu thức cron có đúng cú pháp hay không và kiểm tra từng trườngTrình xác thực biểu thức Cron

Cho một quy trình cron hoàn chỉnh: xây dựng biểu thức trong Trình tạo, xem trước các lần chạy tiếp theo trong Trình phân tích và xác minh cú pháp trong Trình xác thực trước khi commit vào manifest hoặc crontab. Nếu bạn đang gỡ lỗi dấu thời gian từ API hoặc cơ sở dữ liệu, Bộ chuyển đổi dấu thời gian xử lý cả dấu thời gian Unix giây lẫn mili giây và xuất ra ngày định dạng ISO 8601, RFC 2822 và theo locale. Bộ chuyển đổi dấu thời gian cũng hữu ích cho việc kiểm tra JWT: các trường exp (hết hạn) và iat (thời điểm phát hành) trong JSON Web Token là dấu thời gian Unix tính bằng giây, và việc dán một trong hai giá trị vào bộ chuyển đổi sẽ hiện chính xác thời điểm phát hành hoặc cửa sổ hết hạn mà không cần viết bất kỳ code nào.

Câu Hỏi Thường Gặp

Dấu thời gian Unix là gì?
Dấu thời gian Unix là số giây (hoặc mili giây, tùy thuộc vào hệ thống) đã trôi qua kể từ 1970-01-01 00:00:00 UTC, được gọi là epoch Unix. Nó độc lập với múi giờ: cùng một dấu thời gian đề cập đến cùng một thời điểm tuyệt đối ở khắp nơi trên thế giới. JavaScript sử dụng dấu thời gian mili giây (Date.now()), trong khi hầu hết các tiện ích Unix và cơ sở dữ liệu sử dụng giây.
Biểu thức cron là gì?
Biểu thức cron là một chuỗi gồm năm trường cách nhau bằng dấu cách định nghĩa một lịch định kỳ: phút, giờ, ngày trong tháng, tháng và ngày trong tuần. Định dạng này được giới thiệu trong Unix Version 7 (1979) và hiện được sử dụng bởi crontab, systemd timers, Kubernetes CronJobs, GitHub Actions, AWS EventBridge và nhiều bộ lập lịch khác. Mỗi trường chấp nhận các giá trị đơn (5), phạm vi (1-5), danh sách (1,3,5), giá trị bước (*/15) và ký tự đại diện (*). Ví dụ, 30 9 * * 1-5 có nghĩa là 9:30 sáng UTC vào các ngày trong tuần.
Làm thế nào để chuyển đổi giữa dấu thời gian giây và mili giây?
Nhân dấu thời gian giây với 1000 để được mili giây. Chia dấu thời gian mili giây cho 1000 (và lấy phần nguyên) để được giây. Dấu thời gian giây thường có 10 chữ số — ví dụ, 1717200000 — trong khi dấu thời gian mili giây có 13 chữ số, chẳng hạn 1717200000000. Nhầm lẫn giữa hai loại này là một trong những lỗi dấu thời gian phổ biến nhất.
*/5 trong biểu thức cron có nghĩa gì?
Cú pháp */5 có nghĩa là "mỗi giá trị thứ 5" trong trường đã cho. Trong trường phút, */5 chạy tác vụ vào các phút 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 và 55. Toán tử bước (/) cũng hoạt động với phạm vi: 1-30/5 có nghĩa là mỗi 5 phút từ phút 1 đến phút 30.
Tại sao nên lưu trữ dấu thời gian theo UTC?
Lưu trữ theo UTC loại bỏ sự mơ hồ từ các chuyển đổi giờ tiết kiệm ánh sáng ban ngày, sự không khớp múi giờ giữa các máy chủ và việc tổng hợp dữ liệu xuyên khu vực. Chỉ chuyển đổi sang giờ địa phương ở lớp hiển thị (giao diện người dùng hoặc bước kết xuất báo cáo). Khi dấu thời gian được lưu theo giờ địa phương, các chuyển đổi giờ tiết kiệm ánh sáng tạo ra khoảng trống và chồng lấp: 2:30 sáng có thể không tồn tại (mùa xuân) hoặc xảy ra hai lần (mùa thu). UTC không có các chuyển đổi như vậy. Cách tiếp cận này là thông lệ tiêu chuẩn trong các hệ thống phân tán và được khuyến nghị bởi ghi chú Định dạng Ngày và Giờ của W3C.
ISO 8601 là gì?
ISO 8601 là tiêu chuẩn quốc tế cho định dạng chuỗi ngày và giờ. Dạng phổ biến nhất là YYYY-MM-DDTHH:MM:SS.sssZ, trong đó hậu tố Z có nghĩa là UTC. Các chuỗi ISO 8601 được sắp xếp theo thứ tự từ điển theo thứ tự thời gian, điều này giúp chúng thực tiễn cho các tệp nhật ký, chỉ mục cơ sở dữ liệu và phản hồi API.
Biểu thức cron có thể chạy mỗi giây không?
Cron năm trường tiêu chuẩn không hỗ trợ lập lịch dưới một phút. Khoảng thời gian nhỏ nhất là một lần mỗi phút (dùng * trong trường phút). Một số hệ thống như @Scheduled của Spring và Quartz thêm trường giây thứ sáu cho phép thực thi mỗi giây. Kubernetes CronJobs và crontab không hỗ trợ giây.
Vấn đề năm 2038 là gì?
Các hệ thống lưu trữ dấu thời gian Unix dưới dạng số nguyên có dấu 32-bit sẽ tràn vào ngày 2038-01-19 lúc 03:14:07 UTC. Giá trị tối đa của số nguyên có dấu 32-bit là 2.147.483.647, tương ứng với thời điểm chính xác đó. Sau khi tràn, bộ đếm quay về số âm lớn đại diện cho một ngày vào tháng 12 năm 1901. Các hệ thống và ngôn ngữ 64-bit hiện đại — JavaScript, Python 3, Go, Rust — không bị ảnh hưởng. Các thiết bị nhúng cũ, dấu thời gian filesystem ext3, các cột MySQL TIMESTAMP cũ hơn và một số giao thức nhị phân vẫn còn rủi ro.