Thu hẹp khoảng cách giữa thời gian epoch và ngày tháng dễ đọc. Chuyển đổi bất kỳ dấu thời gian Unix nào thành ngày dễ đọc, hoặc ngược lại — cộng với hiển thị dấu thời gian hiện tại trực tiếp chỉ với một cú nhấp.
Đang tải máy tính...
Công cụ này có hữu ích với bạn không?
Bộ chuyển đổi Dấu thời gian Unix là gì?
Bộ chuyển đổi dấu thời gian Unix chuyển đổi giữa dấu thời gian Unix (giây từ kỷ nguyên) và định dạng ngày/giờ dễ đọc cho con người. Cũng hiển thị giờ Unix hiện tại chỉ với một cú nhấp. Cần thiết cho nhà phát triển làm việc với dữ liệu thời gian.
Khi Nào Nên Sử Dụng Máy Tính Này
Bạn đang gỡ lỗi API trả về dấu thời gian Unix và cần đọc chúng dưới dạng ngày tháng
Bạn đang viết mã lưu trữ hoặc so sánh ngày và cần chuyển đổi giữa dấu thời gian và định dạng ngày
Bạn cần dấu thời gian Unix hiện tại cho mục nhật ký, gọi API hoặc bản ghi cơ sở dữ liệu
Bạn đang phân tích nhật ký máy chủ nơi dấu thời gian ở định dạng epoch
Bạn muốn xác minh rằng dấu thời gian trong mã của bạn tương ứng với ngày và giờ chính xác
Bạn đang làm việc với cơ sở dữ liệu hoặc hệ thống tệp sử dụng dấu thời gian Unix cho siêu dữ liệu tệp
Các bước:
Nhập dấu thời gian Unix để chuyển đổi thành ngày dễ đọc.
Hoặc nhập ngày/giờ để chuyển đổi thành dấu thời gian Unix.
Nhấp vào nút giờ hiện tại để nhận dấu thời gian Unix hiện tại.
Sao chép kết quả bằng nút sao chép.
Công Thức
Dấu thời gian → Ngày: new Date(timestamp × 1000)
Ngày → Dấu thời gian: Math.floor(date.getTime() / 1000)
Kỷ nguyên Unix: 1 tháng 1 năm 1970 00:00:00 UTC
Dấu thời gian 32-bit tối đa: 19 tháng 1 năm 2038 (03:14:07 UTC)
Trường Hợp Sử Dụng
Gỡ lỗi phản hồi API có dấu thời gian
Chuyển đổi giá trị dấu thời gian cơ sở dữ liệu
Đặt ngày hết hạn trong mã
Phân tích nhật ký và diễn giải dữ liệu chuỗi thời gian
Lợi Ích Chính
Chuyển đổi dấu thời gian và ngày ngay lập tức
Giờ Unix hiện tại chỉ với một cú nhấp
Hiển thị cả giờ địa phương và UTC
Miễn phí, không cần đăng ký
Mẹo Chuyên Nghiệp
Luôn lưu trữ dấu thời gian ở UTC trong cơ sở dữ liệu
Chỉ chuyển đổi sang giờ địa phương để hiển thị
Sử dụng số nguyên 64-bit để lưu trữ dấu thời gian
Xác minh dấu thời gian cả hai chiều trước khi dựa vào chúng
Những Lỗi Thường Gặp Cần Tránh
Quên rằng JavaScript sử dụng mili giây (×1000)
Giả định tất cả API sử dụng cùng định dạng dấu thời gian
Không xem xét chênh lệch múi giờ
Sử dụng số nguyên 32-bit cho dấu thời gian trong hệ thống mới
Các Thuật Ngữ Chính Được Giải Thích
Dấu thời gian Unix: Giây từ ngày 1 tháng 1 năm 1970 UTC
Kỷ nguyên: Điểm tham chiếu để đo thời gian
UTC: Giờ phối hợp quốc tế
Vấn đề năm 2038: Tràn số nguyên 32-bit
Khái niệm liên quan
Kỷ nguyên Unix: 1 tháng 1 năm 1970 00:00:00 UTC, điểm tham chiếu mà tất cả dấu thời gian Unix được đo từ
Thời gian Epoch: Hệ thống biểu diễn thời gian dưới dạng số giây đã trôi qua từ kỷ nguyên Unix
UTC (Giờ phối hợp quốc tế): Tiêu chuẩn thời gian chính mà thế giới điều chỉnh đồng hồ và thời gian, độc lập múi giờ
Vấn đề Năm 2038: Ngày khi dấu thời gian Unix 32-bit sẽ tràn, có thể khiến hệ thống diễn giải ngày là 1901
ISO 8601: Tiêu chuẩn quốc tế để biểu diễn ngày và giờ (ví dụ: 2024-06-29T12:00:00Z) thay thế cho dấu thời gian Unix
Ví Dụ
Dấu thời gian hiện tại: 1719676800 → Ngày: 29 tháng 6 năm 2024 12:00:00 PM UTC. Chuyển đổi ngày: "1 tháng 1 năm 2025 00:00:00 UTC" → Dấu thời gian: 1735689600.
Giải thích kết quả của bạn
Bộ chuyển đổi hoạt động theo hai hướng: nhập dấu thời gian Unix cho bạn ngày dễ đọc, và nhập ngày cho bạn dấu thời gian Unix. Giờ Unix hiện tại được hiển thị ở trên cùng với nút làm mới, vì vậy bạn luôn có thể xem dấu thời gian trực tiếp mà không cần nhập bất cứ thứ gì.
Dấu thời gian Unix đếm giây từ ngày 1 tháng 1 năm 1970 UTC (kỷ nguyên Unix). Chúng độc lập với múi giờ — cùng một dấu thời gian đại diện cho cùng một khoảnh khắc ở mọi nơi trên Trái Đất. Khi bạn nhập ngày, bộ chuyển đổi sử dụng độ lệch múi giờ địa phương của bạn để tính toán dấu thời gian, nhưng bạn có thể chuyển sang UTC nếu cần kết quả trung lập múi giờ.
Vấn đề 2038 đáng để hiểu: số nguyên có dấu 32-bit tràn vào ngày 19 tháng 1 năm 2038, có nghĩa là các hệ thống cũ sử dụng dấu thời gian 32-bit sẽ quay lại giá trị âm. Các hệ thống hiện đại sử dụng dấu thời gian 64-bit sẽ không tràn trong hàng tỷ năm. Nếu bạn gặp ngày không mong muốn quanh năm 1901 hoặc 2038, tràn 32-bit là nguyên nhân có thể.
Câu Hỏi Thường Gặp
Dấu thời gian Unix là gì?
Dấu thời gian Unix là số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 lúc 00:00:00 UTC (kỷ nguyên Unix). Đây là tham chiếu thời gian phổ quát được sử dụng trong lập trình và điện toán.
Tại sao dấu thời gian hữu ích?
Dấu thời gian cung cấp cách lưu trữ và so sánh thời gian độc lập với múi giờ. Chúng được sử dụng trong cơ sở dữ liệu, API, ghi nhật ký và bất kỳ hệ thống nào cần theo dõi thời gian chính xác.
Vấn đề năm 2038 là gì?
Vào ngày 19 tháng 1 năm 2038, dấu thời gian Unix 32-bit sẽ tràn vì số nguyên có dấu 32-bit tối đa (2.147.483.647) sẽ bị vượt quá. Các hệ thống hiện đại sử dụng dấu thời gian 64-bit để tránh điều này.
Sự khác biệt giữa giây và mili giây trong dấu thời gian là gì?
Dấu thời gian Unix tiêu chuẩn tính bằng giây. JavaScript và nhiều API hiện đại sử dụng mili giây (nhân giây với 1000). Nếu bạn nhận được ngày không mong muốn, hãy kiểm tra xem dấu thời gian tính bằng giây hay mili giây — dấu thời gian mili giây được hiểu là giây sẽ hiển thị ngày rất xa trong tương lai, và ngược lại.
Tại sao dấu thời gian của tôi hiển thị ngày khác với dự kiến?
Các nguyên nhân phổ biến nhất là: dấu thời gian tính bằng mili giây thay vì giây (hoặc ngược lại), chênh lệch múi giờ giữa nơi dấu thời gian được tạo và nơi bạn đang xem, hoặc tràn 32-bit cho các giá trị rất lớn hoặc rất nhỏ. Chuyển đổi giữa UTC và giờ địa phương để loại trừ vấn đề múi giờ.
Tôi có thể chuyển đổi dấu thời gian trước năm 1970 không?
Có. Dấu thời gian trước ngày 1 tháng 1 năm 1970 được biểu diễn bằng số âm. Ví dụ, -86400 đại diện cho ngày 31 tháng 12 năm 1969 lúc 00:00:00 UTC. Bộ chuyển đổi xử lý đúng dấu thời gian âm.
Cơ sở dữ liệu thường sử dụng định dạng nào cho dấu thời gian?
Hầu hết các cơ sở dữ liệu quan hệ (PostgreSQL, MySQL) hỗ trợ cả dấu thời gian Unix (dưới dạng cột số nguyên) và kiểu datetime/timestamp gốc. TIMESTAMPTZ của PostgreSQL lưu trữ dấu thời gian nhận biết múi giờ bên trong. Lựa chọn phụ thuộc vào nhu cầu ứng dụng của bạn — dấu thời gian Unix đơn giản hơn cho so sánh, trong khi kiểu datetime gốc dễ đọc hơn trong truy vấn.
Làm thế nào để xử lý chuyển đổi múi giờ với dấu thời gian Unix?
Dấu thời gian Unix luôn là UTC bên trong. Để hiển thị trong múi giờ địa phương, áp dụng độ lệch múi giờ tại thời điểm hiển thị. Hầu hết các ngôn ngữ lập trình có hàm chuyển đổi múi giờ tích hợp sẵn. Trong JavaScript: new Date(timestamp * 1000).toLocaleString('en-US', { timeZone: 'America/New_York' }).
Giá trị dấu thời gian Unix tối đa là gì?
Số nguyên có dấu 64-bit có thể biểu diễn dấu thời gian lên đến khoảng 292 tỷ năm từ kỷ nguyên — xa hơn nhiều so với tuổi của vũ trụ. Thực tế, dấu thời gian 64-bit sẽ không bao giờ tràn. Giới hạn 32-bit (2.147.483.647 giây) tương ứng với ngày 19 tháng 1 năm 2038 lúc 03:14:07 UTC.
Tại sao một số hệ thống đang rời xa dấu thời gian Unix?
Dấu thời gian Unix mất khả năng đọc đối với con người và không xử lý gọn gàng giây nhuận, thay đổi múi giờ hoặc cải cách lịch. Chuỗi ISO 8601 (ví dụ: 2024-06-29T12:00:00Z) tự tài liệu và nhận biết múi giờ. Tuy nhiên, dấu thời gian Unix vẫn phổ biến nhờ sự đơn giản, nhỏ gọn và độc lập múi giờ trong lưu trữ và tính toán.