Unix Timestamp Trực Tiếp (Thời Gian Unix Hiện Tại)

1787039637

Giây kể từ Epoch Unix (00:00:00 UTC ngày 1 tháng 1 năm 1970)

Trình chuyển đổi Unix Timestamp

Timestamp sang Ngày

Giây hoặc mili giây được phát hiện tự động.

Ngày sang Timestamp

Chọn ngày và giờ để chuyển đổi thành Unix timestamp.

Định dạng thời gian Unix

Cùng một thời điểm hiện tại được biểu diễn ở nhiều định dạng phổ biến, cập nhật trực tiếp.

Định dạng Giá trị hiện tại
Unix timestamp (giây)
Dấu thời gian Unix (mili giây)
ISO 8601 (UTC)
RFC 2822 (UTC)

Thời gian Unix là gì?

Thời gian Unix (còn gọi là Epoch time, POSIX time, hoặc Unix timestamp) là một hệ thống mô tả một điểm trong thời gian. Nó là số giây đã trôi qua kể từ Epoch Unix, được định nghĩa là 00:00:00 UTC ngày thứ Năm, ngày 1 tháng 1 năm 1970. Nó được sử dụng rộng rãi trong các hệ điều hành giống Unix và nhiều hệ thống máy tính khác.

Ưu điểm chính của thời gian Unix là sự đơn giản của nó. Nó biểu diễn thời gian dưới dạng một số nguyên duy nhất, được hiểu rộng rãi và liên tục tăng lên. Điều này làm cho việc lưu trữ, so sánh và thực hiện các phép tính với dấu thời gian trở nên cực kỳ dễ dàng mà không cần lo lắng về múi giờ, giờ tiết kiệm ánh sáng ban ngày hoặc các hệ thống lịch khác nhau. Ví dụ, để tìm khoảng thời gian giữa hai sự kiện, bạn chỉ cần trừ đi dấu thời gian Unix của chúng.

Trong khi con số thô này hoàn hảo cho máy tính, nó không thân thiện lắm với con người. Để thu hẹp khoảng cách này, các nhà phát triển và những người đam mê công nghệ sử dụng một công cụ gọi là chuyển đổi epoch. Bạn có thể sử dụng nó để chuyển đổi ngay lập tức bất kỳ dấu thời gian nào thành ngày đọc được dễ dàng, hoặc làm ngược lại bằng cách tìm dấu thời gian cho một ngày cụ thể.

Vấn đề Năm 2038

Một vấn đề nổi tiếng liên quan đến thời gian Unix là "Vấn đề Năm 2038." Nó tương tự như vấn đề Y2K. Nhiều hệ thống máy tính đầu tiên được thiết kế để lưu trữ dấu thời gian Unix dưới dạng số nguyên có dấu 32-bit. Một số nguyên có dấu 32-bit có thể biểu diễn các giá trị từ -2.147.483.648 đến 2.147.483.647.

Giá trị tối đa, 2.147.483.647, sẽ đạt tới vào 03:14:07 UTC ngày 19 tháng 1 năm 2038. Vào giây tiếp theo, số nguyên này sẽ vượt quá giới hạn và quay vòng về giá trị âm nhất định, hệ thống sẽ hiểu đó là một ngày trong năm 1901. Điều này có thể gây ra các lỗi rộng rãi trong phần mềm cũ dựa vào biểu diễn thời gian 32-bit.

Giải pháp là sử dụng số nguyên 64-bit để lưu trữ dấu thời gian. Một số nguyên 64-bit có giá trị tối đa lớn đến mức không vượt quá giới hạn trong khoảng gần 292 tỷ năm, giải quyết vấn đề này cho tương lai gần. Hầu hết các hệ điều hành và phần mềm hiện đại đã chuyển sang biểu diễn thời gian 64-bit.

Giây Nhảy và Thời Gian Unix

Một chi tiết kỹ thuật quan trọng là thời gian Unix không tính đến giây nhảy. Trong khi UTC (Thời gian phối hợp quốc tế) thỉnh thoảng thêm một giây nhảy để giữ cho đồng hồ của chúng ta phù hợp với quay của Trái Đất, dấu thời gian Unix đơn giản bỏ qua chúng và tiếp tục đếm theo tuyến tính.

Điều này có nghĩa là thời gian Unix không phải là biểu diễn chính xác của UTC. Thay vào đó, nó được mô tả chính xác hơn như một đếm tuyến tính các giây. Khi xảy ra giây nhảy, thời gian Unix đôi khi lặp lại một giây để duy trì đồng bộ. Chi tiết này rất quan trọng đối với các ứng dụng khoa học và độ chính xác cao, nhưng đối với hầu hết các ứng dụng tính toán chung, sự khác biệt là không đáng kể.

Các Ứng dụng Phổ biến của Thời gian Unix

  • Dấu thời gian tệp: Hệ điều hành sử dụng dấu thời gian Unix để theo dõi thời điểm các tệp được tạo, sửa đổi hoặc truy cập lần cuối.
  • Cơ sở dữ liệu: Là một cách phổ biến và hiệu quả để lưu trữ thông tin ngày giờ cho các bản ghi (ví dụ, created_at, updated_at).
  • API và Phát triển Web: Dùng để hết hạn phiên, kiểm soát bộ đệm, và ghi nhật ký các yêu cầu API.
  • Lập trình: Gần như mọi ngôn ngữ lập trình đều cung cấp các hàm để lấy dấu thời gian Unix hiện tại và chuyển đổi nó sang và từ các định dạng ngày đọc được của con người.

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

Unix epoch là gì?

Kỷ nguyên Unix là thời điểm bắt đầu tính thời gian cho các hệ thống Unix: 00:00:00 UTC ngày 1 tháng 1 năm 1970. Dấu thời gian Unix đơn giản là số giây đã trôi qua kể từ thời điểm đó.

Tại sao thời gian Unix bắt đầu từ ngày 1 tháng 1 năm 1970?

Ngày này được các nhà phát triển đầu tiên của Unix chọn làm điểm khởi đầu tròn, thuận tiện, gần với thời điểm hệ thống được tạo ra vào đầu những năm 1970. Kể từ đó, nó trở thành điểm tham chiếu tiêu chuẩn.

Unix time có phải ở UTC không?

Thời gian Unix được tính từ một kỷ nguyên xác định theo UTC và không phụ thuộc múi giờ, do đó cùng một dấu thời gian biểu thị cùng một thời điểm ở mọi nơi. Vì nó bỏ qua giây nhuận, nên tốt nhất mô tả nó như một phép đếm tuyến tính số giây thay vì là biểu diễn hoàn hảo của UTC.

Sự khác biệt giữa giây và mili giây là gì?

Một dấu thời gian Unix chuẩn đếm số giây nguyên kể từ thời điểm gốc, có 10 chữ số cho các ngày hiện tại. Nhiều hệ thống, bao gồm JavaScript, đếm mili giây thay vào đó, tạo ra giá trị lớn hơn 1.000 lần với 13 chữ số.

Vấn đề năm 2038 là gì?

Các hệ thống lưu trữ dấu thời gian dưới dạng số nguyên có dấu 32-bit chỉ có thể đếm đến 03:14:07 UTC ngày 19 tháng 1 năm 2038, sau đó giá trị sẽ bị tràn và bị đọc nhầm thành ngày trong năm 1901. Giải pháp là lưu trữ dấu thời gian dưới dạng số nguyên 64-bit.

Thời gian hiện tại trong các thành phố này:

New York · London · Tokyo · Paris · Hong Kong · Singapore · Dubai · Los Angeles · Shanghai · Beijing · Sydney · Mumbai

Thời gian hiện tại ở các quốc gia:

🇺🇸 Mỹ | 🇨🇳 Trung Quốc | 🇮🇳 Ấn Độ | 🇬🇧 Vương quốc Anh | 🇩🇪 Đức | 🇯🇵 Nhật Bản | 🇫🇷 Pháp | 🇨🇦 Canada | 🇦🇺 Úc | 🇧🇷 Brazil |

Thời gian hiện tại ở múi giờ:

UTC | GMT | CET | PST | MST | CST | EST | EET | IST | Trung Quốc (CST) | JST | AEST | SAST | MSK | NZST |

Miễn phí tiện ích dành cho quản trị web:

Tiện ích Đồng hồ Analog Miễn phí | Tiện ích Đồng hồ số miễn phí | Tiện ích Đồng hồ chữ miễn phí | Tiện ích Đồng hồ từ miễn phí