Giây và mili giây
1777118400
1777118400000
Hai giá trị mô tả cùng một thời điểm nếu giá trị đầu được hiểu là giây và giá trị sau là mili giây. Nhầm lẫn hai đơn vị này là lỗi timestamp phổ biến nhất.
Chuyển đổi giữa Unix timestamp, ISO 8601, UTC và giờ địa phương.
Cập nhật lần cuối
Coddy dạy bạn bằng cách viết code thật ngay trên trình duyệt: bài học tương tác, phản hồi tức thì và AI hỗ trợ khi bạn bị kẹt.
Công cụ chuyển đổi Unix timestamp biến *thời gian epoch* (một con số duy nhất đại diện cho một thời điểm) thành ngày giờ dễ đọc, và chuyển ngày giờ ngược lại thành timestamp. Lập trình viên gặp timestamp ở khắp nơi: cột trong cơ sở dữ liệu, dòng log, response của API, sự kiện analytics, claim exp của JWT, trình kích hoạt lịch hẹn và header hết hạn cache.
Ý tưởng cốt lõi rất đơn giản: máy tính lưu thời gian dưới dạng một con số (số giây hoặc mili giây kể từ 1970-01-01 00:00:00 UTC), nhưng con người cần lịch, múi giờ và định dạng dễ đọc. Chuyển đổi giữa hai dạng này là một trong những việc gỡ lỗi phổ biến nhất trong mọi ứng dụng web hay di động.
Phần dễ nhầm lẫn nhất là *đơn vị*. POSIX và phần lớn ngôn ngữ backend dùng giây. JavaScript, Java và nhiều message broker dùng mili giây. Một số hệ thống đo lường dùng micro giây hoặc nano giây. Số có 10 chữ số gần như luôn là giây; số có 13 chữ số gần như luôn là mili giây.
1970-01-01 00:00:00 UTC).2026-04-25T12:00:00Z) là định dạng văn bản dùng được ở mọi nơi. Chữ Z ở cuối (hoặc +00:00) nghĩa là UTC; độ lệch như +02:00 nghĩa là giờ địa phương sớm hơn UTC 2 giờ.2026-04-25T12:00:00Z và 2026-04-25T14:00:00+02:00).Dán một con số (giây hoặc mili giây) hoặc một chuỗi ngày giờ. Công cụ tự nhận diện định dạng dựa vào độ dài và hình dạng.
Chuyển giữa giây và mili giây nếu công cụ đoán sai: số có 10 chữ số là giây, số có 13 chữ số là mili giây.
Kết quả hiển thị ISO 8601 theo UTC, giờ địa phương của bạn và một cụm từ tương đối dễ đọc (3 hours ago, in 2 days).
Sao chép trực tiếp timestamp, chuỗi ISO hoặc giờ địa phương. Rất tiện khi điền exp của JWT, một hàng trong cơ sở dữ liệu hay một truy vấn log.
Các định dạng bạn sẽ gặp thường xuyên nhất khi làm việc với ngày giờ trong code. ISO 8601 cũng được IETF chuẩn hóa thành RFC 3339 để dùng trong các giao thức.
| Định dạng | Ví dụ | Nơi bạn gặp |
|---|---|---|
| Unix tính bằng giây | 1777118400 | Log backend, exp của JWT, time() của POSIX, Redis |
| Unix tính bằng mili giây | 1777118400000 | Date.now() trong JavaScript, System.currentTimeMillis() trong Java |
| ISO 8601 UTC | 2026-04-25T12:00:00Z | REST API, JSON, GraphQL, tệp log |
| ISO 8601 có độ lệch múi giờ | 2026-04-25T14:00:00+02:00 | Lịch hẹn hiển thị cho người dùng, lời mời trên lịch |
| RFC 2822 | Sat, 25 Apr 2026 12:00:00 GMT | Header email, Date và Last-Modified của HTTP |
| Chỉ có ngày | 2026-04-25 | Ngày sinh, ngày lễ, không gắn với múi giờ |
1777118400
1777118400000
Hai giá trị mô tả cùng một thời điểm nếu giá trị đầu được hiểu là giây và giá trị sau là mili giây. Nhầm lẫn hai đơn vị này là lỗi timestamp phổ biến nhất.
{ "id": 42, "createdAt": 1777118400, "expiresAt": 1777204800}Chuyển đổi từng giá trị trước khi kết luận nó ở quá khứ hay tương lai. Phần lớn API JSON dùng Unix tính bằng giây, nhưng hãy luôn đọc tài liệu: các backend dùng nhiều JavaScript thường trả về mili giây.
2026-04-25T12:00:00Z
2026-04-25T14:00:00+02:00
Hai chuỗi này biểu diễn *cùng một khoảnh khắc*. Luôn lưu thời điểm theo UTC; chỉ định dạng sang giờ địa phương khi hiển thị.
1700000000 hiểu là giây thì là tháng 11 năm 2023, nhưng hiểu là mili giây thì là tháng 1 năm 1970.'2026-04-25') thay vì so sánh timestamp. Hai chuỗi ISO hợp lệ có thể mô tả cùng một thời điểm ở các định dạng khác nhau.1970-01-01 00:00:00 UTC. Đó là một con số duy nhất đại diện cho một thời điểm cụ thể, không phụ thuộc vào múi giờ nào.Date.now() của JavaScript trả về mili giây; phần lớn backend trả về giây.UTC là viết tắt của Coordinated Universal Time (Giờ Phối hợp Quốc tế). Đây là mốc giờ chuẩn toàn cầu và không áp dụng giờ mùa hè. Phần lớn cơ sở dữ liệu, API và log nên lưu thời gian theo UTC.
Date của JavaScript lưu timestamp dưới dạng số mili giây kể từ Unix epoch, đó là giá trị mà Date.now() và new Date().getTime() trả về. Cách này chính xác hơn giây, nhưng thường gây ra bug lệch 1000 lần khi làm việc với các ngôn ngữ khác.new Date(...) trong JavaScript, hoặc dùng datetime.fromtimestamp(...) trong Python. Hoặc dán vào công cụ chuyển đổi Unix timestamp để có kết quả chỉ với một cú nhấp.2038-01-19, còn gọi là sự cố năm 2038. Các ngôn ngữ và cơ sở dữ liệu hiện đại lưu timestamp dưới dạng số nguyên 64 bit, giúp kéo dài khoảng an toàn thêm hàng trăm tỷ năm.