Bộ chuyển đổi thời gian Epoch

Chuyển đổi dấu thời gian Unix sang ngày UTC hoặc chuyển đổi ngày thành giây epoch.

Chọn chuyển đổi dấu thời gian sang ngày hoặc ngày sang dấu thời gian.
Nhập dấu thời gian Unix tính bằng giây.

Giá trị đã chuyển đổi

2024-03-09T16:00:00.000Z

Giá trị UTC2024-03-09T16:00:00.000Z
Unix mili giây1.710.000.000.000
Thứ trong tuầnThứ Bảy

Cách sử dụng bộ chuyển đổi thời gian epoch này

  1. Chọn chế độ chuyển đổi

    Chọn Epoch sang ngày hoặc Ngày sang epoch trong trường Chế độ chuyển đổi.

  2. Đối với epoch sang ngày

    Nhập dấu thời gian Unix tính bằng giây vào trường Dấu thời gian Epoch (giây).

  3. Đối với ngày sang epoch

    Chọn ngày trong Lịch, sau đó đặt Giờ (UTC), Phút (UTC) và Giây (UTC) nếu cần.

  4. Đọc kết quả

    Máy tính hiển thị giá trị UTC, mili giây Unix và ngày trong tuần.

Phương pháp luận

Cách hoạt động của bộ chuyển đổi thời gian epoch này

Bộ chuyển đổi thời gian epoch này giúp chuyển đổi giữa dấu thời gian Unix và ngày UTC dễ đọc. Thời gian Unix — còn được gọi là thời gian POSIX hoặc thời gian epoch — đếm số giây đã trôi qua kể từ kỷ nguyên Unix, được xác định là nửa đêm UTC ngày 1 tháng 1 năm 1970 (1970-01-01T00:00:00Z). Biểu diễn số nguyên duy nhất này là tiêu chuẩn thực tế để lưu trữ và truyền tải dấu thời gian trong cơ sở dữ liệu, API, tệp nhật ký, mã thông báo JWT và hầu hết mọi ngôn ngữ lập trình hiện đại. Bộ chuyển đổi xử lý cả hai chiều: nhập dấu thời gian dạng số sẽ trả về ngày UTC tương ứng, thứ trong tuần và giá trị mili giây tương đương, trong khi nhập ngày và giờ theo lịch sẽ trả về giá trị epoch tính bằng giây và mili giây.

Công thức
Thời gian Unix = số giây đã trôi qua kể từ 1970-01-01T00:00:00Z
epoch Điểm tham chiếu: nửa đêm UTC ngày 1 tháng 1 năm 1970 (dấu thời gian Unix 0)
Unix time (giây) Tổng số giây nguyên từ kỷ nguyên (epoch) đến ngày và giờ đã chỉ định
Unix time (mili giây) Unix time tính bằng giây nhân với 1.000 — được sử dụng bởi JavaScript Date, Java System.currentTimeMillis() và nhiều API
Ngày UTC Ngày theo lịch Gregory và giờ định dạng 24 giờ tương ứng với dấu thời gian đã cho
thứ trong tuần Tên thứ trong tuần được xác định từ ngày UTC đã chuyển đổi
Ví dụ

Để chuyển đổi dấu thời gian Unix 1.700.000.000 sang ngày: bắt đầu từ 1970-01-01 00:00:00 UTC, cộng thêm 1.700.000.000 giây. Kết quả tương đương với 19.675 ngày, 17 giờ, 46 phút và 40 giây. Ngày UTC tương ứng là 2023-11-14 lúc 22:13:20 UTC, rơi vào Thứ Ba. Giá trị mili giây tương đương là 1.700.000.000.000. Ngược lại, nhập ngày 14 tháng 11 năm 2023 lúc 22:13:20 UTC sẽ trả về giá trị epoch chính xác là 1.700.000.000.

Dấu thời gian 0 chuyển đổi thành 1970-01-01 00:00:00 UTC (Thứ Năm). Giá trị mili giây tương đương là 0.

Dấu thời gian 1.704.000.000 chuyển đổi thành 2023-12-31 12:00:00 UTC (Chủ Nhật). Nhập ngày và giờ đó trong chế độ Ngày sang epoch sẽ trả về 1.704.000.000.

Các giả định
  • Tất cả các phép tính đều ở định dạng UTC. Việc chuyển đổi sang giờ địa phương yêu cầu áp dụng độ lệch múi giờ phù hợp sau khi chuyển đổi.
  • Giây nhuận không được tính. Giống như POSIX, bộ chuyển đổi này coi mỗi ngày có chính xác 86.400 giây, phù hợp với hành vi của hầu hết các ngôn ngữ lập trình và hệ điều hành.
  • Dấu thời gian âm đại diện cho các ngày trước kỷ nguyên (1 tháng 1 năm 1970). Ví dụ: −86400 tương ứng với ngày 31 tháng 12 năm 1969.
  • Dấu thời gian tính bằng mili giây nên được chia cho 1.000 trước khi nhập; bộ chuyển đổi chấp nhận giây làm đầu vào và hiển thị giá trị tương đương tính bằng mili giây trong kết quả.
Ghi chú
  • Date.now() của JavaScript và System.currentTimeMillis() của Java trả về mili giây, không phải giây — hãy chia cho 1.000 trước khi nhập giá trị vào đây, hoặc sử dụng kết quả mili giây để so sánh.
  • Sự cố năm 2038 ảnh hưởng đến các dấu thời gian số nguyên có dấu 32-bit, vốn sẽ bị tràn vào ngày 19 tháng 1 năm 2038 lúc 03:14:07 UTC. Hầu hết các hệ thống hiện đại đã chuyển sang dấu thời gian 64-bit.
  • Khi gỡ lỗi các phản hồi API hoặc tệp nhật ký, hãy chú ý đến các dấu thời gian bị lệch chính xác 3.600 hoặc 7.200 giây — điều này thường cho thấy một độ lệch múi giờ đã được áp dụng (hoặc bị bỏ sót) ở đâu đó trong quy trình.
  • Thời gian Epoch luôn tăng đơn điệu (bỏ qua các điều chỉnh giây nhuận), điều này làm cho nó trở nên lý tưởng để sắp xếp các sự kiện, tính toán khoảng thời gian và tạo các mã định danh duy nhất dựa trên thời gian.
Nguồn tham khảo
  1. IEEE Std 1003.1 (POSIX) — định nghĩa về Số giây kể từ Epoch
  2. Nguồn gốc Unix epoch — Tài liệu của The Unix Heritage Society và Bell Labs
  3. RFC 3339 — Ngày và Giờ trên Internet: Dấu thời gian

Unix timestamp là gì?

Unix timestamp là số giây đã trôi qua kể từ nửa đêm UTC ngày 1 tháng 1 năm 1970 — kỷ nguyên Unix (Unix epoch). Số nguyên duy nhất này là tiêu chuẩn thực tế để biểu thị thời gian trong cơ sở dữ liệu, API, tệp nhật ký và hầu hết các ngôn ngữ lập trình. Vì nó không phụ thuộc vào múi giờ và tăng dần đơn điệu, nó giúp đơn giản hóa việc sắp xếp, tính toán thời lượng và so sánh dựa trên thời gian. Hàm Date.now() của JavaScript và nhiều API trả về mili giây (1.000 × giây), vì vậy hãy chia cho 1.000 trước khi nhập giá trị mili giây vào đây. Các mốc thời gian âm đại diện cho các ngày trước năm 1970; ví dụ: −86400 chính xác là một ngày trước kỷ nguyên.

Các trường hợp sử dụng epoch time cho nhà phát triển

Các nhà phát triển sử dụng Unix timestamp khi lưu trữ thời gian sự kiện trong cơ sở dữ liệu, tuần tự hóa ngày tháng trong các API JSON, tạo khóa bộ nhớ đệm dựa trên thời gian và gỡ lỗi các mục nhật ký. Các cột cơ sở dữ liệu thường lưu trữ dấu thời gian dưới dạng số nguyên để lập chỉ mục và truy vấn phạm vi hiệu quả. Phản hồi API thường trả về giây hoặc mili giây epoch để tránh sự mơ hồ về múi giờ. Khi gỡ lỗi, việc chuyển đổi dấu thời gian thô từ nhật ký hoặc xác nhận JWT sang ngày tháng có thể đọc được giúp nhanh chóng phát hiện giá trị đó là đúng hay bị sai lệch do múi giờ. Epoch time cũng được sử dụng để giới hạn tốc độ, hết hạn phiên và tạo các mã định danh duy nhất có thể sắp xếp trong các hệ thống phân tán.

Câu hỏi thường gặp về bộ chuyển đổi thời gian Epoch

Unix epoch là gì?

Unix epoch là điểm tham chiếu để đo thời gian Unix: nửa đêm UTC ngày 1 tháng 1 năm 1970 (1970-01-01T00:00:00Z). Dấu thời gian bằng 0 tương ứng với chính xác thời điểm đó.

Tại sao dấu thời gian JavaScript của tôi có nhiều chữ số hơn?

Date.now() của JavaScript trả về mili giây kể từ kỷ nguyên (epoch), không phải giây. Chia cho 1.000 để chuyển sang định dạng giây được sử dụng bởi công cụ này, hoặc so sánh trực tiếp với kết quả mili giây.

Tôi có thể nhập dấu thời gian âm không?

Có. Các giá trị âm đại diện cho các ngày trước kỷ nguyên. Ví dụ: −86400 tương ứng với 1969-12-31T00:00:00Z, chính xác là một ngày trước kỷ nguyên.

Công cụ này có xử lý giây nhuận không?

Không, và điều này phù hợp với tiêu chuẩn POSIX. Thời gian POSIX giả định mỗi ngày có chính xác 86.400 giây. 27 giây nhuận được thêm vào kể từ năm 1972 không được biểu diễn riêng lẻ, nghĩa là UTC và thời gian Unix có thể chênh lệch tối đa một giây tại các thời điểm có giây nhuận.

Sự cố năm 2038 là gì?

Các hệ thống lưu trữ thời gian Unix 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, chuyển sang một số âm lớn và tạo ra các ngày trong năm 1901. Hầu hết các nền tảng hiện đại hiện nay sử dụng dấu thời gian 64 bit, sẽ không bị tràn trong hơn 290 tỷ năm.

Người viết Jan Křenek Người sáng lập và nhà phát triển chính
Người kiểm duyệt Đánh giá phương pháp luận DigitSum Xác minh công thức và QA
Cập nhật lần cuối 10 thg 3, 2026

Sử dụng kết quả này để tham khảo và hãy xác nhận các quyết định quan trọng với chuyên gia có chuyên môn.

Dữ liệu nhập vào được lưu trong trình duyệt trừ khi có tính năng mới thông báo khác cho bạn.