Bộ Chuyển Đổi Timestamp
Chuyển đổi giữa timestamp Unix và ngày/giờ có thể đọc được
Timestamp Unix Hiện Tại
Timestamp sang Ngày
Ngày sang Timestamp
Timestamp Phổ Biến
Giới thiệu về Bộ chuyển đổi Timestamp Unix
Timestamp Unix, còn được gọi là Epoch time hoặc POSIX time, là một hệ thống theo dõi thời gian dưới dạng tổng số giây đã trôi qua kể từ ngày 1 tháng 1 năm 1970 (nửa đêm UTC/GMT). Định dạng này được sử dụng rộng rãi trong các hệ điều hành, định dạng tệp và cơ sở dữ liệu vì nó nhỏ gọn, đơn giản và độc lập với múi giờ. Cho dù bạn là quản trị viên cơ sở dữ liệu, nhà phát triển backend hay kiến trúc sư hệ thống, việc hiểu và chuyển đổi timestamp Unix là nhu cầu hàng ngày.
Bộ chuyển đổi Timestamp Unix cấp chuyên gia của chúng tôi cung cấp một bộ công cụ mạnh mẽ cho các nhà phát triển. Bạn có thể chuyển đổi ngay lập tức giây hoặc mili giây thành ngày tháng dễ đọc theo giờ địa phương, UTC hoặc bất kỳ múi giờ cụ thể nào. Ngược lại, bạn có thể tạo timestamp từ ngày tháng để kiểm thử và tạo dữ liệu mẫu cho cơ sở dữ liệu. Công cụ hỗ trợ đầu ra ISO 8601, tính toán thời gian tương đối (ví dụ: "2 giờ trước") và tự động phát hiện định dạng để ngăn ngừa lỗi.
Timestamp Unix là gì?
Về cốt lõi, thời gian Unix là một số đếm giây số nguyên đơn giản kể từ Unix Epoch (ngày 1 tháng 1 năm 1970, 00:00:00 UTC). Nó bỏ qua giây nhuận, nghĩa là mỗi ngày trong thời gian Unix chứa chính xác 86.400 giây. Sự đơn giản này làm cho nó trở nên hoàn hảo để máy tính tính toán chênh lệch thời gian mà không cần lo lắng về các quy tắc lịch phức tạp hoặc thay đổi giờ mùa hè (DST).
Vì timestamp Unix dựa trên UTC (Giờ phối hợp quốc tế), chúng giống nhau ở mọi nơi trên Trái đất tại bất kỳ thời điểm nào. Một timestamp được tạo ở Tokyo giống hệt với một timestamp được tạo ở New York. Múi giờ chỉ được áp dụng khi hiển thị ngày tháng cho người dùng. Việc tách biệt giữa 'lưu trữ' (timestamp) và 'trình bày' (múi giờ) là một phương pháp hay nhất trong kỹ thuật phần mềm.
Các tính năng chính
Các trường hợp sử dụng phổ biến
Vấn đề năm 2038 (Y2K38)
Vấn đề năm 2038 là một cột mốc quan trọng đối với máy tính. Các hệ thống cũ lưu trữ timestamp dưới dạng số nguyên có dấu 32-bit sẽ bị tràn vào ngày 19 tháng 1 năm 2038, lúc 03:14:07 UTC. Vào giây đó, giá trị số nguyên 2.147.483.647 sẽ chuyển thành -2.147.483.648, khiến máy tính hiểu ngày đó là ngày 13 tháng 12 năm 1901. Điều này có thể dẫn đến các lỗi nghiêm trọng trong cơ sở hạ tầng và hệ thống tài chính.
Giải pháp tiêu chuẩn của ngành là sử dụng số nguyên 64-bit để lưu trữ thời gian. Một số nguyên có dấu 64-bit có thể biểu diễn ngày tháng trong 292 tỷ năm tới, giải quyết vấn đề hiệu quả mãi mãi. Công cụ này hỗ trợ đầy đủ timestamp 64-bit và có thể xử lý chính xác ngày tháng vượt xa năm 2038.
Tài liệu tham khảo
Câu hỏi thường gặp
Unix timestamp chính xác là gì?
Unix timestamp là một số nguyên đếm số giây đã trôi qua kể từ Unix epoch — nửa đêm ngày 1 tháng 1 năm 1970 theo UTC. Ví dụ, 1700000000 tương ứng với 22:13:20 UTC ngày 14 tháng 11 năm 2023. Vì chỉ là một số, timestamp không phụ thuộc múi giờ và là cách chuẩn lưu trữ thời điểm trong database, API, file log và session token. Hầu hết ngôn ngữ lập trình đều có hàm tích hợp để lấy timestamp hiện tại và chuyển đổi sang ngày giờ dễ đọc.
Tại sao Unix time bắt đầu từ ngày 1 tháng 1 năm 1970?
Ngày 1 tháng 1 năm 1970 00:00:00 UTC được gọi là ‘Unix epoch’. Các nhà phát triển Unix sớm cần một điểm tham chiếu nhất quán cho việc đo lường thời gian, và năm 1970 gần với thời điểm phát triển Unix. Lựa chọn này có phần tùy tiện nhưng đã trở thành chuẩn toàn cầu. Một số hệ thống như Windows FILETIME hay NSDate của Apple dùng epoch khác.
Sự khác nhau giữa timestamp đơn vị giây và mili giây là gì?
Timestamp đơn vị giây có độ chính xác đến giây (ví dụ: 1700000000, 10 chữ số). Timestamp đơn vị mili giây sẽ nhân thêm 1000 (1700000000000, 13 chữ số). Date.now() của JavaScript và nhiều Web API trả về mili giây theo mặc định, trong khi Python (time.time()) và PHP (time()) trả về giây. Số có 13 chữ số hầu như chắc chắn là mili giây; số có 10 chữ số là giây. Nhầm lẫn hai loại này là một trong những lỗi timestamp phổ biến nhất trong lập trình web.
Làm thế nào để chuyển đổi timestamp trong JavaScript, Python hoặc PHP?
JavaScript: new Date(ms) chuyển timestamp millisecond thành đối tượng Date; Date.now() lấy timestamp hiện tại. Python: datetime.utcfromtimestamp(ts) chuyển timestamp giây; time.time() lấy timestamp hiện tại. PHP: date('Y-m-d H:i:s', $ts) định dạng dưới dạng chuỗi; time() lấy timestamp hiện tại. Với chuyển đổi múi giờ trong Python, dùng datetime.fromtimestamp(ts, tz=timezone.utc).
Vấn đề năm 2038 là gì?
Vấn đề năm 2038 ảnh hưởng các hệ thống lưu Unix timestamp dưới dạng số nguyên có dấu 32-bit. Giá trị tối đa (2.147.483.647) tương ứng với 03:14:07 UTC ngày 19 tháng 1 năm 2038. Sau đó, bộ đếm tràn (overflow) và quay về giá trị âm lớn, mà hầu hết các hệ thống hiểu là năm 1901. Hệ thống 64-bit hiện đại không bị ảnh hưởng. Nếu bạn duy trì hệ thống nhúng cũ dùng số nguyên 32-bit, cần chuyển đổi trước năm 2038.
Công Cụ Liên Quan
Chuyển đổi Múi giờ
Chuyển đổi thời gian giữa các múi giờ khác nhau
Máy tính Ngày tháng
Tính khoảng thời gian giữa hai ngày
Trình tạo Cron
Tạo và kiểm tra biểu thức Cron
Trình tạo UUID
Tạo định danh duy nhất (UUID/GUID)
Đồng hồ bấm giờ & Hẹn giờ
Đồng hồ bấm giờ online và đếm ngược
Định dạng JSON
Định dạng và xác thực dữ liệu JSON