Epoch Timestamp (Unix Time) là gì và tại sao được sử dụng?
Nguồn gốc của Unix Time
Để hiểu rõ epoch timestamp, thường gọi là Unix time, POSIX time hoặc đơn giản là epoch, chúng ta cần nhìn lại nguồn gốc của hệ điều hành Unix vào đầu những năm 1970. Unix time là hệ thống theo dõi thời gian dưới dạng tổng số giây đang tăng liên tục. Cụ thể, nó đại diện cho số giây đã trôi qua kể từ Unix epoch. Thời điểm mốc được định nghĩa là 00:00:00 Giờ Phối hợp Quốc tế (UTC) vào Thứ Năm, ngày 1 tháng 1 năm 1970.
Khi Ken Thompson và Dennis Ritchie phát triển các phiên bản Unix đầu tiên tại Bell Labs, họ cần một cách đơn giản, hiệu quả để máy tính biểu diễn và lưu trữ ngày giờ. Các ngày tháng dạng đọc được ('29 tháng 7, 2026') rất phức tạp để máy tính xử lý. Chúng bao gồm các tháng không đều (28, 29, 30 hoặc 31 ngày), năm nhuận, múi giờ và chuyển đổi giờ mùa hè. Bằng cách biểu diễn thời gian dưới dạng một số nguyên tăng liên tục, các nhà phát triển Unix đã tạo ra một tiêu chuẩn thời gian toàn cầu, rõ ràng, dễ dàng lưu trữ, so sánh và tính toán.
Tại sao lập trình viên sử dụng Epoch Timestamp hiện nay
Dù đã qua nhiều thập kỷ, epoch time vẫn là xương sống của hạ tầng công nghệ hiện đại. Dưới đây là lý do nó được áp dụng rộng rãi:
- Đơn giản và Hiệu quả: Lưu trữ một số nguyên 32-bit hoặc 64-bit tốn ít dung lượng đĩa và bộ nhớ hơn nhiều so với chuỗi ngày tháng đã định dạng. Khi cơ sở dữ liệu chứa hàng tỷ bản ghi, việc tiết kiệm vài byte trên mỗi dòng giúp giảm chi phí lưu trữ đáng kể và tăng hiệu suất chỉ mục.
- Không phụ thuộc Múi giờ: Epoch timestamp gắn liền với UTC. Nó không quan tâm đến vị trí địa lý của người dùng. Khi máy chủ ở Tokyo giao tiếp với máy chủ ở New York, việc truyền một số nguyên epoch giúp tránh mọi sự nhầm lẫn về múi giờ. Máy khách chỉ cần chuyển đổi số nguyên đó sang múi giờ địa phương khi nhận được.
- Thao tác Toán học Dễ dàng: Tính khoảng thời gian giữa hai sự kiện đơn giản là lấy timestamp này trừ timestamp kia. Nếu bạn muốn biết có bao nhiêu giây trôi qua giữa hai dòng nhật ký,
timestamp2 - timestamp1sẽ cho kết quả chính xác ngay lập tức. - Sắp xếp Cơ sở Dữ liệu: Sắp xếp bản ghi theo thứ tự thời gian trên cột số nguyên nhanh hơn nhiều so với việc phân tích và sắp xếp các chuỗi thời gian dạng văn bản.
Ảnh hưởng của Giây Nhuận
Một chi tiết kỹ thuật của Unix time là cách nó xử lý giây nhuận. Giây nhuận là sự điều chỉnh một giây thỉnh thoảng được áp dụng cho UTC để giữ cho thời gian trong ngày gần với thời gian mặt trời trung bình. Đáng chú ý là Unix time không tính đến giây nhuận. Trong hệ thống Unix time, mỗi ngày được coi là có đúng 86.400 giây. Khi xảy ra giây nhuận, đồng hồ Unix lặp lại cùng một giây hai lần. Lựa chọn thiết kế này ngăn thời gian trở nên bất thường, mặc dù điều đó có nghĩa Unix time không phải là thước đo tuyến tính tuyệt đối của thời gian vật lý trôi qua từ năm 1970.

