Chuyển đổi Unix timestamp

Chuyển một Unix timestamp, tính bằng giây hoặc mili giây, thành ngày giờ ở bất kỳ múi giờ nào, và ngược lại.

Thời gian Unix hiện tại

—

Chiều chuyển đổi

Unix timestamp đếm số giây kể từ ngày 1 tháng 1 năm 1970 UTC. Nó là một thời điểm, không có múi giờ riêng, đó là lý do cùng một con số lại là giờ đồng hồ khác nhau ở Paris và ở Tokyo. Hãy chọn múi giờ bạn quan tâm, việc chuyển đổi hoạt động theo cả hai chiều.

Cách hoạt động

Timestamp có từ mười ba chữ số trở lên được đọc là mili giây, đó là thứ JavaScript, Java và hầu hết các định dạng log xuất ra; timestamp ngắn hơn được đọc là giây. Hãy đặt đơn vị một cách rõ ràng nếu bạn không muốn phụ thuộc vào điều đó.

Theo chiều ngược lại, ngày giờ được hiểu theo múi giờ bạn đã chọn, trừ khi văn bản tự ghi độ lệch của nó, khi đó độ lệch ấy được ưu tiên. Các biểu thức tương đối như “now” (bây giờ) hay “+1 day” (thêm 1 ngày) bị từ chối: một kết quả thay đổi giữa hai lần mở cùng một liên kết không phải là kết quả bạn có thể chia sẻ.

Giờ mùa hè được áp dụng theo cơ sở dữ liệu múi giờ hiện hành, nên một thời điểm vào tháng 7 và một thời điểm vào tháng 1 ở cùng múi giờ có thể có độ lệch khác nhau.

Ví dụ

Trường hợp Dữ liệu nhập Kết quả
Một timestamp tính bằng giây, đọc theo UTC 1767225600 2026-01-01T00:00:00Z
Cùng thời điểm đó tính bằng mili giây 1767225600000 2026-01-01T00:00:00Z

Câu hỏi thường gặp

Giây hay mili giây?

PHP, Python, Go và lệnh date làm việc bằng giây; JavaScript, Java và hầu hết các API JSON làm việc bằng mili giây. Ngày nay, một số có mười chữ số là giây, còn số có mười ba chữ số là mili giây.

Vì sao ngày giờ của tôi bị lệch một tiếng?

Gần như luôn do một múi giờ được ngầm giả định thay vì được nêu rõ. Timestamp không có múi giờ; múi giờ được chọn khi hiển thị nó. Hãy so sánh dòng UTC với dòng giờ địa phương để thấy độ lệch đang được áp dụng.

Sự cố năm 2038 là gì?

Timestamp 32 bit có dấu sẽ bị tràn vào ngày 19 tháng 1 năm 2038. Các hệ thống hiện đại, kể cả hệ thống này, dùng số nguyên 64 bit và không bị ảnh hưởng, nhưng các thiết bị nhúng và các cột cơ sở dữ liệu cũ thì có.

Timestamp có tính giây nhuận không?

Không. Thời gian Unix coi như mọi ngày đều có đúng 86.400 giây, nên một giây nhuận bị hấp thụ thay vì được đếm. Đó là lý do nó là một mã định danh tuyệt vời cho một thời điểm nhưng lại là cơ sở kém để đo thời gian vật lý trôi qua băng ngang một giây nhuận.

Cần biết

  • Quy tắc múi giờ lấy từ cơ sở dữ liệu IANA đi kèm máy chủ, nên một múi giờ có quy tắc thay đổi sau phiên bản đó có thể bị sai lệch cho đến khi được cập nhật.

Nguồn

Tất cả công cụ Lập trình