Chuyển mốc thời gian Unix thành ngày và ngược lại
Đăng ngày · Cập nhật ngày 3 phút đọc
Mốc thời gian Unix đếm thời gian đã trôi qua kể từ nửa đêm ngày 1 tháng Giêng 1970 theo giờ quốc tế. Hai câu hỏi quyết định ngày kết quả: đơn vị của con số và múi giờ bạn dùng để đọc kết quả.
Một giá trị tham chiếu
Chuyển đổi mốc thời gian Unix cho ba cách đọc cùng một thời điểm. Với 1700000000, khi trình duyệt đặt giờ Paris:
| Cách đọc | Kết quả |
|---|---|
| Ngày UTC | Tue, 14 Nov 2023 22:13:20 GMT |
| Ngày địa phương | 14 tháng Mười một 2023 lúc 23:13:20 UTC+1 |
| ISO | 2023-11-14T22:13:20.000Z |
Giờ địa phương theo múi giờ của trình duyệt: nhiều hơn một giờ ở Paris vào mùa đông. Cùng một mốc thời gian là một thời điểm duy nhất, được đọc ở hai múi giờ.
Đơn vị được nhận biết từ số chữ số
Thiết lập mặc định nhận biết đơn vị từ độ dài của con số. Ba giá trị dưới đây chỉ cùng một thời điểm, trong phạm vi độ chính xác.
| Con số | Số chữ số | Đơn vị nhận biết | Thời điểm nhận được |
|---|---|---|---|
| 1700000000 | 10 | Giây | 14 tháng Mười một 2023, 22:13:20 UTC |
| 1700000000000 | 13 | Mili giây | 14 tháng Mười một 2023, 22:13:20 UTC |
| 1700000000123456 | 16 | Micro giây | 14 tháng Mười một 2023, 22:13:20.123 UTC |
Quy tắc: tối đa 11 chữ số là giây; từ 12 đến 14 là mili giây; 15 và 16 là micro giây. Thiết lập “mili giây” buộc dùng đơn vị đó.
Cái bẫy của quy tắc
Vì đơn vị được suy ra từ độ dài, một giá trị mơ hồ chỉ được đọc theo một cách: 10000000000 (11 chữ số) cho ngày 20 tháng Mười một 2286, còn 100000000000 (12 chữ số) cho ngày 3 tháng Ba 1973. Một mốc thời gian mili giây trước tháng Ba 1973 có 11 chữ số hoặc ít hơn, và sẽ bị đọc là giây: khi đó hãy buộc thiết lập “mili giây”.
Giá trị trước 1970 và giới hạn năm 2038
Một số âm chỉ thời điểm trước năm 1970: -1 cho ngày 31 tháng Mười hai 1969 lúc 23:59:59 UTC, và 0 cho nửa đêm ngày 1 tháng Giêng 1970.
Số 2147483647 là số lớn nhất mà một số nguyên 32 bit có dấu chứa được: nó cho ngày 19 tháng Giêng 2038 lúc 03:14:07 UTC. Số tiếp theo, 2147483648, cho 03:14:08: công cụ tiếp tục không giới hạn, nhưng hệ thống lưu thời gian bằng 32 bit thì không thể.
Chuyển một ngày thành mốc thời gian
Hãy nhập một ngày thay vì một con số: công cụ cho mốc thời gian tính bằng giây và mili giây.
| Đầu vào | Mốc thời gian tính bằng giây | Cách đọc |
|---|---|---|
| 2026-01-01 | 1767225600 | Nửa đêm theo giờ quốc tế, không nêu múi giờ |
| 2026-01-01T10:30:00+01:00 | 1767259800 | 10:30 ở Paris, tức 09:30 theo giờ quốc tế |
| 2024-02-29 | 1709164800 | Năm nhuận được chấp nhận |
Một ngày không nêu múi giờ được đọc theo giờ quốc tế, không phải giờ địa phương: công cụ cho biết điều này trong kết quả. Một ngày không tồn tại, như 30 tháng Hai 2026, bị từ chối kèm một thông báo.
Các lỗi thường gặp
- Đọc mili giây thành giây: ngày rơi xa hàng nghìn năm.
- Quên múi giờ: một ngày đọc là giờ địa phương rồi gửi đi như giờ quốc tế sẽ lệch một giờ hoặc hơn.
- Viết một ngày không nêu múi giờ trong khi nghĩ đến giờ địa phương, trong khi nó sẽ được đọc theo UTC.
Để đếm số ngày giữa hai ngày, xem Đếm số ngày giữa hai ngày.
Kiểm tra một phép chuyển đổi
- Đọc lại dòng UTC, không phụ thuộc vào thiết bị.
- Kiểm tra đơn vị được báo ở dòng đầu của kết quả.
- Chuyển ngược ngày nhận được: bạn phải có lại con số ban đầu.
