Chuyển đổi Unix timestamp

Biến epoch time thành một ngày thật, và ngược lại.

Unix timestamp hiện tại (giây)
1790338997
Theo mili giây
1790338997000

Timestamp sang ngày

Giờ địa phương
UTC
ISO 8601
Tương đối

Ngày sang timestamp

Giây
Mili giây
ISO 8601

Chạy ngay trên trình duyệt. Không có gì bạn nhập vào bị gửi đi đâu cả.

Cách chuyển đổi một Unix timestamp

  1. Dán một timestamp. Đơn vị được tự nhận diện theo độ dài.
  2. Đọc ngày theo giờ địa phương, UTC, ISO 8601 và thời gian tương đối.
  3. Để làm chiều ngược lại, chọn ngày giờ và sao chép timestamp.

Đơn vị được nhận diện theo số chữ số như thế nào

Số chữ sốĐọc là
Tối đa 11Giây
12 đến 14Mili giây
15 đến 17Micro giây
18 trở lênNano giây

Hãy tự chọn đơn vị từ menu thả xuống nếu một con số nằm ngay ranh giới giữa các mức này.

Lấy timestamp hiện tại bằng code

Ngôn ngữ hoặc công cụCode
JavaScriptMath.floor(Date.now() / 1000)
Pythonint(time.time())
PHPtime()
Terminal Linux hoặc macOSdate +%s
PostgreSQLEXTRACT(EPOCH FROM NOW())

Vài ghi chú về cách Unix time hoạt động

  • Nó đếm giây SI nhưng bỏ qua giây nhuận theo định nghĩa, nên vẫn là một số đếm đơn giản, tăng đều thay vì bám theo giờ mặt trời chính xác.
  • Các hệ thống lưu nó dưới dạng số nguyên có dấu 64-bit đẩy sự cố năm 2038 lùi đến tận năm 292.277.026.596.
  • Đối tượng Date của chính JavaScript bị giới hạn khoảng 273.790 năm về mỗi phía tính từ 1970, một giới hạn khác với vấn đề tràn số 32-bit.

Câu hỏi thường gặp về Chuyển đổi Unix timestamp

Unix timestamp là gì?

Số giây kể từ ngày 1 tháng 1 năm 1970 lúc 00:00:00 UTC, thời điểm được gọi là Unix epoch. Nó bỏ qua giây nhuận và là cùng một con số ở khắp nơi trên thế giới, bất kể múi giờ nào.

Làm sao để phân biệt giây với mili giây?

Đếm số chữ số. Thời điểm hiện tại có 10 chữ số ở đơn vị giây và 13 chữ số ở mili giây, nên 1700000000 và 1700000000000 là cùng một thời điểm. Date.now() của JavaScript trả về mili giây, còn hầu hết công cụ Unix dùng giây.

Sự cố 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 sẽ tràn số ở 2147483647, tức 03:14:07 UTC ngày 19 tháng 1 năm 2038. Giây tiếp theo sẽ quay vòng thành một số âm rơi vào tháng 12 năm 1901. Timestamp 64-bit không gặp giới hạn này.

Làm sao để lấy timestamp hiện tại bằng code?

Trong JavaScript dùng Math.floor(Date.now() / 1000), trong Python dùng int(time.time()), trong PHP dùng time(), và trong terminal Linux hay macOS dùng date +%s.

Unix timestamp có thể là số âm không?

Có. Số âm đếm ngược từ 1970, nên -86400 là ngày 31 tháng 12 năm 1969 lúc 00:00 UTC. Công cụ này chấp nhận số âm.

Unix timestamp có tính đến múi giờ không?

Không. Nó đếm số giây kể từ một thời điểm duy nhất theo UTC, nên cùng một con số nghĩa là cùng một thời khắc ở khắp nơi trên thế giới. Múi giờ chỉ xuất hiện khi bạn biến con số đó thành một ngày địa phương dễ đọc.

Công cụ liên quan