Chuyển đổi Unix timestamp
Biến epoch time thành một ngày thật, và ngược lại.
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ả.
- Timestamp hiện tại theo thời gian thực
- Giây, mili giây hoặc micro giây
- Giờ địa phương, UTC và ISO 8601
Cách chuyển đổi một Unix timestamp
- Dán một timestamp. Đơn vị được tự nhận diện theo độ dài.
- Đọc ngày theo giờ địa phương, UTC, ISO 8601 và thời gian tương đối.
- Để 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 11 | Giây |
| 12 đến 14 | Mili giây |
| 15 đến 17 | Micro giây |
| 18 trở lên | Nano 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 |
|---|---|
| JavaScript | Math.floor(Date.now() / 1000) |
| Python | int(time.time()) |
| PHP | time() |
| Terminal Linux hoặc macOS | date +%s |
| PostgreSQL | EXTRACT(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.