utilduck
Home · Nhà phát triển · Bộ chuyển đổi timestamp Unix

Bộ chuyển đổi timestamp Unix

Nhập timestamp (giây) hoặc ngày tháng để chuyển đổi tức thì.

UTC-
Giờ địa phương-
Timestamp (giây)0

Timestamp Unix là gì?

Timestamp Unix đếm số giây trôi qua kể từ 00:00:00 UTC ngày 1 tháng 1 năm 1970, gọi là Unix epoch. Đây là số nguyên duy nhất xác định bất kỳ thời điểm nào bất kể múi giờ, là tiêu chuẩn phổ biến để lưu timestamp trong cơ sở dữ liệu và API.

Để chuyển đổi timestamp sang ngày đọc được, chia cho 86400 để lấy số ngày rồi cộng vào 1970-01-01. Trên thực tế, trình duyệt và ngôn ngữ lập trình có hàm tích hợp xử lý việc này. Timestamp âm đại diện cho các ngày trước năm 1970.

Cách đổi timestamp Unix sang ngày giờ?

Để đổi timestamp Unix sang ngày giờ, coi nó là số giây đã trôi qua kể từ 00:00:00 UTC ngày 1/1/1970 rồi cộng số giây đó vào mốc epoch; để đổi ngược lại, lấy một ngày UTC trừ đi epoch và đếm số giây đã trôi qua. Ví dụ: timestamp 1000000000 tương ứng với 2001-09-09T01:46:40Z.

Các bước đổi giữa timestamp và ngày giờ

  1. Coi timestamp Unix là một số nguyên giây đã trôi qua kể từ mốc epoch, 1970-01-01T00:00:00 UTC.
  2. Nhân với 1000 nếu môi trường lập trình của bạn cần mili giây thay vì giây (đối tượng Date của JavaScript dùng mili giây).
  3. Cộng khoảng thời gian đó vào thời điểm epoch để có ngày giờ UTC tương ứng.
  4. Để đổi ngược từ ngày giờ sang timestamp, biểu diễn ngày giờ theo UTC, trừ đi epoch và đếm số giây nguyên giữa hai mốc đó.
  5. Timestamp trước năm 1970 được biểu diễn bằng số âm, đếm ngược số giây từ epoch.

Công thức timestamp Unix

timestamp (giây) = (ngày giờ UTC) - (1970-01-01T00:00:00 UTC), tính theo giây
  • Epoch = 1970-01-01T00:00:00 UTC, điểm mốc cố định (timestamp 0)
  • 86400 = số giây trong một ngày, dùng để đổi số ngày sang giây và ngược lại

Ví dụ đổi timestamp sang ngày giờ (UTC)

TimestampNgày giờ UTC
01970-01-01T00:00:00Z
10000000002001-09-09T01:46:40Z
17210880002024-07-16T00:00:00Z
17526240002025-07-16T00:00:00Z
17841600002026-07-16T00:00:00Z

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

Vì sao timestamp Unix dùng UTC thay vì giờ địa phương của tôi?

Dùng một điểm mốc UTC duy nhất tránh được mọi nhập nhằng do múi giờ và giờ tiết kiệm ánh sáng ban ngày — một timestamp luôn chỉ cùng một thời điểm chính xác ở mọi nơi trên thế giới, và mỗi ứng dụng chỉ đổi sang giờ địa phương của người dùng khi hiển thị.

Timestamp âm nghĩa là gì?

Timestamp âm biểu diễn một thời điểm trước epoch, 1970-01-01T00:00:00 UTC. Ví dụ, -86400 nghĩa là 86.400 giây (một ngày) trước epoch, tức 1969-12-31T00:00:00 UTC.

Vì sao một số hệ thống dùng mili giây thay vì giây?

Chuẩn timestamp Unix được định nghĩa theo giây, nhưng một số ngôn ngữ và API (đáng chú ý là Date.now() trong JavaScript) dùng mili giây để có độ chính xác cao hơn. Nhân timestamp tính bằng giây với 1000 để ra mili giây, hoặc chia timestamp tính bằng mili giây cho 1000 để ra giây.

Điều gì xảy ra với timestamp Unix sau năm 2038?

Các hệ thống lưu timestamp dưới dạng số nguyên có dấu 32 bit sẽ tràn số vào ngày 19/1/2038 lúc 03:14:07 UTC, một vấn đề được gọi là lỗi năm 2038. Hầu hết hệ thống hiện đại nay dùng số nguyên 64 bit cho timestamp, mở rộng phạm vi sử dụng lên hàng tỷ năm và tránh được lỗi tràn số này.

Công cụ này đổi giữa timestamp Unix và ngày giờ dương lịch bằng đối tượng Date tích hợp sẵn của trình duyệt; kết quả hiển thị theo giờ địa phương phụ thuộc vào đồng hồ và cài đặt múi giờ của thiết bị bạn, dù timestamp gốc và giá trị UTC luôn rõ ràng không nhập nhằng.

Sources: POSIX / IEEE Std 1003.1 - Base Definitions (Seconds Since the Epoch)

Quyền riêng tư và an toàn

  • Tính toán trong trình duyệt — Dữ liệu bạn nhập chỉ được tính trên thiết bị của bạn và không gửi tới máy chủ utilduck.
  • Kết nối được mã hóa — Mọi trang đều dùng HTTPS nên không ai trên đường truyền đọc được nội dung.
  • Không chia sẻ với bên thứ ba — Dữ liệu bạn nhập không được chuyển cho dịch vụ phân tích hay quảng cáo.
  • Không lưu trữ — Kết quả không được lưu trên máy chủ nào và bạn không cần tạo tài khoản.

Cập nhật lần cuối: 2026-08-24