Thời gian/Số

Unix Timestamp ↔ Ngày

Chuyển đổi thời gian Unix thành ngày và ngược lại, hỗ trợ mọi múi giờ (IANA).


                    

Unix time (epoch time) is the number of seconds elapsed since January 1, 1970, 00:00:00 UTC. It's the most common way to store time in databases, APIs, and logs, since it's just a single integer with no tie to a specific timezone or date format.

How to use it

Common uses

Things to keep in mind

Mixing up seconds and milliseconds is the most common mistake: JavaScript's Date.now() returns milliseconds, while most Unix APIs use seconds — a factor of 1000 off.

Unix time itself has no timezone — it's always UTC; a timezone is only applied when displaying the date to a person.

Bài viết về công cụ này: Thời gian Unix: vì sao máy tính đếm thời gian từ năm 1970

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

Unix timestamp là gì?

Đó là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970, 00:00:00 UTC (kỷ nguyên Unix). Con số này không gắn với bất kỳ múi giờ nào — múi giờ chỉ được áp dụng khi hiển thị ngày cho một người.

Sự khác biệt giữa giây và mili giây là gì?

JavaScript và một số API (như Date.now()) trả về timestamp theo mili giây, trong khi thời gian Unix cổ điển tính bằng giây. Nhầm lẫn đơn vị sẽ cho ra ngày ở năm 1970 hoặc ở đâu đó trong tương lai xa — hãy chọn đúng đơn vị trong trường "Đơn vị".

Thời gian Unix có tính đến giây nhuận không?

Không, mỗi ngày trong thời gian Unix luôn bằng đúng 86400 giây, giây nhuận bị bỏ qua. Các hệ thống cần đồng bộ chính xác với UTC thiên văn xử lý giây nhuận bằng một cơ chế riêng, nằm ngoài Unix timestamp tiêu chuẩn.

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

Có, giá trị âm tương ứng với các ngày trước 1 tháng 1 năm 1970. Hầu hết hệ thống hiện đại xử lý đúng các giá trị này, dù một số API hoặc thư viện cũ có thể không hỗ trợ.

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

Trên các hệ thống lưu timestamp dưới dạng số nguyên 32-bit có dấu, bộ đếm giây sẽ tràn vào ngày 19 tháng 1 năm 2038. Các hệ thống 64-bit hiện đại không gặp vấn đề này.

Bài viết: Thời gian/Số

Biểu thức cron: cách giải mã lịch chạy tác vụ

Cách giải mã một biểu thức như */15 * * * * và biết chính xác khi nào tác vụ sẽ chạy.

Hệ đếm số: vì sao có hệ nhị phân, bát phân và thập lục phân

Vì sao màu #FF5733 trong CSS được viết bằng chữ số thập lục phân thay vì thập phân.

Phép toán bit: AND, OR và XOR hoạt động như thế nào ở cấp độ bit

AND theo bit khác gì với AND logic, và vì sao lại cần thao tác trên từng bit riêng lẻ của một số.

Chênh lệch ngày: vì sao đếm số ngày phức tạp hơn tưởng tượng

Vì sao trừ ngày một cách ngây thơ có thể cho kết quả sai vì năm nhuận.

Tính tuổi: vì sao không đơn giản chỉ là trừ năm

Vì sao chỉ đơn giản trừ năm sinh có thể cho ra tuổi lớn hơn thực tế một tuổi.

Múi giờ: vì sao UTC không giống với GMT

Vì sao UTC không bao giờ thay đổi hai lần một năm, trong khi giờ London (GMT/BST) thì có.

Máy tính thời lượng: cách cộng đúng giờ, phút và giây

Vì sao khi cộng phút và giây cần "chuyển" phần dư sang hàng tiếp theo, giống như trong phép cộng thập phân.

ISO 8601 Duration: cách viết một khoảng thời gian theo định dạng chuẩn

Vì sao PT1H30M có nghĩa là "1 giờ 30 phút", không phải "1 phút 30 giờ".

Số tuần: vì sao các quốc gia khác nhau đếm tuần khác nhau

Vì sao ngày 1 tháng 1 đôi khi thuộc tuần 52 hoặc 53 của năm trước theo chuẩn ISO 8601.

Số La Mã: một hệ thống không có số 0 và không có giá trị theo vị trí hoạt động ra sao

Vì sao IV có nghĩa là 4 chứ không phải 6, và quy tắc trừ hoạt động thế nào trong số La Mã.

IEEE 754: vì sao 0.1 + 0.2 không bằng 0.3 trong code

Vì sao hầu như mọi ngôn ngữ lập trình đều in 0.1 + 0.2 thành 0.30000000000000004.

Số thành chữ: vì sao cần biến chữ số thành từ ngữ

Vì sao các văn bản ngân hàng ghi số tiền cả bằng số lẫn bằng chữ cùng một lúc.