Trình chuyển đổi Timestamp Unix
Chuyển đổi timestamp Unix (giây hoặc mili giây) sang ngày có thể đọc được bởi con người và ngược lại. Tự động phát hiện đơn vị theo độ lớn.
Timestamp → ngày
Ngày → timestamp
- Dán timestamp Unix vào trường trên cùng, hoặc nhấp Sử dụng thời gian hiện tại.
- Để Đơn vị ở Tự động phát hiện, hoặc ép giây/mili giây nếu giá trị của bạn mơ hồ.
- Đọc các hàng thời gian UTC, địa phương và tương đối xuất hiện bên dưới.
- Để đi theo hướng khác, chọn một ngày trong trình chọn phía dưới và nhấp Chuyển thành timestamp.
Công cụ này làm gì?
Timestamp Unix là số đếm giây (hoặc mili giây) kể từ 1970-01-01 00:00:00 UTC — cùng epoch được Linux, macOS, cơ sở dữ liệu, file log và HTTP header sử dụng. Công cụ này chuyển đổi giữa giá trị số đó và một ngày có thể đọc được bởi con người ở cả UTC và múi giờ địa phương của bạn, và có thể chuyển đổi ngược lại. Tự động phát hiện chọn giây vs mili giây dựa trên số lượng chữ số.
Ví dụ
Đầu vào (giây, 10 chữ số):
1709251200 Đầu ra:
UTC (ISO 8601) 2024-03-01T00:00:00.000Z
Local time 3/1/2024, 9:00:00 AM (in a UTC+9 locale)
Relative 2 months ago (relative to now)
Seconds 1709251200
Milliseconds 1709251200000 Cùng khoảnh khắc trong mili giây sẽ là 1709251200000 — 13 chữ số.
Tại sao timestamp của tôi hiển thị sai năm?
- Nhầm lẫn giây và mili giây.
1709251200dưới dạng mili giây là tháng 1 năm 1970;1709251200000dưới dạng giây là năm 56137. Kiểm tra số lượng chữ số — 10 là giây, 13 là mili giây. - Micro giây hoặc nano giây. Một số hệ thống (time.time_ns() của Python, Prometheus) phát ra các giá trị 16 hoặc 19 chữ số. Chia cho 1000 hoặc 1.000.000 trước khi dán.
- Nhầm lẫn múi giờ. Hàng địa phương của bạn khác với UTC bởi offset của trình duyệt bạn. Nếu file log nói 12:00:00 và trang hiển thị 21:00:00, đó là UTC+9, không phải bug.
- Tràn 32-bit (Y2038). Các hệ thống legacy lưu thời gian trong signed int32 gói lại tại 2147483647 (19 tháng 1 năm 2038 UTC) thành giá trị âm được diễn giải là 1901.
- Số không đầu bị loại bỏ. 0012345 trở thành 12345. Dán giá trị như được hiển thị, không định dạng lại.
- Timestamp float. 1709251200.123 là một giây phân số. Công cụ chấp nhận nó và giữ phần phân số dưới dạng mili giây.
Câu hỏi thường gặp
Timestamp của tôi là giây hay mili giây?
Đếm các chữ số. Timestamp cho một ngày khoảng 2001 đến 2286 là 10 chữ số ở giây (ví dụ 1709251200) hoặc 13 chữ số ở mili giây (ví dụ 1709251200000). Nếu bạn thấy một số lớn kết thúc bằng ba số không, gần như chắc chắn là mili giây. Công cụ này tự động phát hiện theo độ lớn: giá trị 10^12 hoặc lớn hơn được coi là mili giây.
Vấn đề Y2038 là gì?
Timestamp Unix được lưu trong signed 32-bit integer tràn vào 03:14:07 UTC ngày 19 tháng 1 năm 2038 — giá trị 2147483647. Các hệ thống vẫn sử dụng int32 cho thời gian (mã C cũ, một số thiết bị nhúng, một số cơ sở dữ liệu) sẽ gói lại thành số âm và diễn giải là 13 tháng 12 năm 1901. Các hệ thống 64-bit hiện đại và số JavaScript thì an toàn.
Tại sao timestamp của tôi hiển thị sai năm?
Hầu như luôn là sự không khớp đơn vị. Nếu bạn dán 1709251200000 và công cụ coi nó là giây, bạn sẽ nhận được ngày khoảng năm 56137. Nếu bạn dán 1709251200 và công cụ coi nó là mili giây, bạn sẽ nhận được 20 tháng 1 năm 1970. Đặt dropdown Đơn vị rõ ràng hoặc kiểm tra số lượng chữ số.
Timestamp có bao gồm múi giờ không?
Không. Timestamp Unix là số đếm tuyệt đối các giây kể từ 1970-01-01 00:00:00 UTC. Nó không mang múi giờ. Công cụ này hiển thị cả biểu diễn UTC và cách diễn giải thời gian địa phương của trình duyệt bạn. Nếu bạn thấy offset 9 giờ so với đồng nghiệp, đó là chênh lệch múi giờ, không phải bug.
Tôi có thể sử dụng timestamp âm cho các ngày trước 1970 không?
Có. Giá trị âm được hỗ trợ — -86400 là 31 tháng 12 năm 1969 UTC, ví dụ. Không phải hệ thống nào cũng chấp nhận chúng (một số cơ sở dữ liệu và ngôn ngữ cũ kẹp về không), nhưng JavaScript Date xử lý chúng một cách native, nên công cụ này sẽ chuyển đổi chúng một cách chính xác.
Điều này có hỗ trợ chuỗi ngày ISO 8601 trong trường timestamp không?
Không, trường timestamp chỉ mong đợi một giá trị epoch số. Sử dụng phần Ngày → timestamp để chọn ngày và giờ lịch. Nếu bạn có một chuỗi ISO 8601 như 2024-03-01T00:00:00Z, thả nó vào console trình duyệt của bạn dưới dạng new Date("...").getTime() để lấy mili giây, hoặc dán vào trình chọn ngày.
Bạn có lưu timestamp hoặc ngày mà tôi chuyển đổi không?
Không. Chúng tôi không giữ bất kỳ timestamp hoặc ngày nào bạn gõ ở đây. Mọi thứ bạn chuyển đổi bị loại bỏ ngay khoảnh khắc bạn đóng hoặc làm mới tab — không có nhật ký, không có bản ghi nào về phía chúng tôi về những gì bạn tra cứu. Bạn có thể kiểm tra công cụ phát triển của trình duyệt nếu muốn yên tâm thêm.