CodeKitHub
Tiếng Việt
Công cụ Thời gian

Công Cụ Chuyển Đổi Unix Timestamp

Chuyển đổi một Unix timestamp thành ngày dễ đọc, hoặc chọn một ngày và nhận timestamp của nó. Công cụ tự động phát hiện giây so với mili giây, hiển thị giờ địa phương, UTC và ISO 8601, và hiển thị một đồng hồ epoch chạy trực tiếp ở trên cùng.

Current timestamp (seconds)
Current timestamp (milliseconds)

Timestamp → Date

Date → Timestamp

Công Cụ Này Là Gì?

Một Unix timestamp (còn gọi là epoch time) là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970, 00:00:00 UTC. Đây là cách chuẩn để máy tính lưu trữ các thời điểm: cơ sở dữ liệu, file log, API và ngôn ngữ lập trình đều dùng nó vì đó là một con số duy nhất, không mơ hồ, không nhầm lẫn múi giờ.

Có hai dạng: giây (10 chữ số ngày nay, ví dụ 1720500000) và mili giây (13 chữ số, dùng bởi JavaScript và Java). Công cụ này tự động phát hiện bạn đã dán loại nào.

Tại Sao Nên Dùng?

  • Đọc timestamp từ log, hàng cơ sở dữ liệu và phản hồi API ngay lập tức.
  • Tự động phát hiện giây so với mili giây — không cần đoán.
  • Hiển thị giờ địa phương, UTC, ISO 8601 và thời gian tương đối ("3 giờ trước") cùng một lúc.
  • Chuyển đổi theo cả hai chiều: timestamp → ngày và ngày → timestamp.
  • Đồng hồ epoch hiện tại chạy trực tiếp để tham khảo nhanh.

Cách Sử Dụng

  1. Để giải mã: dán một timestamp (như 1720500000) vào ô bên trái và nhấn "Convert".
  2. Đọc kết quả theo múi giờ địa phương của bạn, UTC, ISO 8601 và thời gian tương đối.
  3. Để mã hóa: chọn một ngày và giờ trong ô bên phải và nhấn "Convert" để nhận timestamp theo giây và mili giây.
  4. Dùng đồng hồ trực tiếp ở trên cùng khi bạn chỉ cần timestamp hiện tại.

Ví dụ

Đầu vào

1720500000

Đầu ra

Local time: 7/9/2024, 1:20:00 PM
UTC time:   Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601:   2024-07-09T05:20:00.000Z

Giá trị 10 chữ số được coi là giây; giá trị 13 chữ số được coi là mili giây.

Mẹo thực tế

  • Gỡ lỗi các lỗi "sai giờ": 90% là vấn đề hiển thị múi giờ, không phải timestamp sai. So sánh dòng UTC với log máy chủ của bạn (máy chủ thường ghi log theo UTC) trước khi động vào bất kỳ mã nào.
  • Một ngày rơi đúng vào 1970-01-01 nghĩa là timestamp là 0 hoặc bị thiếu — một triệu chứng giá trị null cổ điển, không phải một ngày thực.
  • Một ngày quanh 1970 cộng vài ngày thường nghĩa là giây đã bị hiểu nhầm thành mili giây ở đâu đó; một ngày vào năm 56.000 trở lên nghĩa là ngược lại.
  • Trong bảng tính: Excel đếm số ngày kể từ 1900, không phải số giây kể từ 1970. Chuyển đổi bằng =(A1/86400)+DATE(1970,1,1) cho một timestamp tính bằng giây.

Tình huống sử dụng thực tế

Nơi timestamp gây rắc rối trong thực tế: đọc trường hết hạn trong JWT và token API (exp/iat là Unix giây), đối chiếu thời điểm báo lỗi của người dùng với dòng log máy chủ, thiết lập TTL bộ nhớ đệm và khung cron, và kiểm tra xem một chứng chỉ hoặc token đã thực sự hết hạn hay chưa và hết hạn bao lâu rồi. Dòng thời gian tương đối ("3 giờ trước") là cách kiểm tra nhanh nhất cho tất cả những điều này.

Việc gỡ lỗi JWT đủ phổ biến để nói rõ: giải mã payload của token bằng công cụ Base64, sau đó dán giá trị exp vào đây — câu trả lời tức thì cho "token này đã hết hạn chưa và hết hạn bao lâu rồi".

Vì sao Unix time được thiết kế như vậy

Lưu trữ một con số tăng dần duy nhất kể từ một epoch cố định (thay vì cấu trúc năm/tháng/ngày/giờ) là một đánh đổi đơn giản có chủ ý: hai timestamp có thể được so sánh hoặc trừ nhau bằng phép tính đơn giản, không cần logic lịch, đó là lý do cơ sở dữ liệu, định dạng log, và hầu như mọi cách biểu diễn ngày nội bộ của ngôn ngữ lập trình đều được xây dựng dựa trên nó. Cái giá của sự đơn giản đó chính là điều công cụ này tồn tại để giải quyết — con người không nghĩ theo giây-kể-từ-1970, nên mỗi timestamp cần được dịch lại thành một ngày lịch trước khi nó có ý nghĩa với người đọc, và bản dịch đó phải tính đến múi giờ, độ chính xác (giây so với mili giây), và định dạng hiển thị cùng một lúc.

Base64 Encoder / Decoder · Age Calculator

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

Công cụ biết timestamp của tôi là giây hay mili giây bằng cách nào?

Dựa vào độ lớn. Giá trị từ 1.000.000.000.000 (1e12) trở lên được coi là mili giây; giá trị nhỏ hơn là giây. Ngày hiện tại khoảng 1,7 tỷ tính bằng giây và khoảng 1.700 tỷ tính bằng mili giây, nên hai khoảng này không chồng lấn với các ngày thực tế.

Tại sao timestamp của tôi hiển thị giờ khác với mong đợi?

Múi giờ. Một timestamp luôn dựa trên UTC; dòng "local time" chuyển đổi nó sang múi giờ thiết bị của bạn. So sánh dòng UTC với những gì hệ thống nguồn của bạn ghi log — nhiều máy chủ ghi log theo UTC.

Vấn đề năm 2038 là gì?

Các hệ thống lưu timestamp dưới dạng số nguyên có dấu 32-bit bị tràn số vào ngày 19 tháng 1 năm 2038. Hệ thống hiện đại dùng số nguyên 64-bit và không bị ảnh hưởng. Công cụ này dùng số của JavaScript, có thể xử lý ngày vượt xa năm 2038.

Tôi có thể chuyển đổi timestamp âm không?

Có. Timestamp âm biểu thị các ngày trước 1 tháng 1 năm 1970 — ví dụ, -86400 là ngày 31 tháng 12 năm 1969.

Epoch có tính đến giây nhuận không?

Không. Unix time coi mỗi ngày có đúng 86.400 giây và bỏ qua giây nhuận — một sự đơn giản hóa có chủ ý giúp phép tính dễ dàng.

Công Cụ Liên Quan