Chuyển đổi Epoch
Một dòng nhật ký hiển thị giá trị 1729523412; một API trả về giá trị 1729523412000; và cơ sở dữ liệu ghi giá trị 1729523412.845293. Cả ba giá trị này đều biểu diễn cùng một thời điểm kể từ ngày 1 tháng 1 năm 1970 theo chuẩn UTC: giá trị đầu tính bằng giây, giá trị thứ hai tính bằng mili giây và giá trị thứ ba tính bằng giây kèm phần thập phân. Bộ chuyển đổi này hoạt động hai chiều: dán một dấu thời gian để đọc ngày giờ UTC, hoặc nhập một ngày để lấy giá trị epoch theo giây hoặc mili giây.
Cách chuyển đổi dấu thời gian của một epoch
-
1
Dán dấu thời gian
Một giá trị tính bằng giây (10 chữ số), mili giây (13 chữ số) hoặc có phần thập phân, như 1729523412.845293.
-
2
Chọn độ chính xác
Công tắc phía trên ô nhập chọn giây hoặc mili giây. Kết quả ngày giữ nguyên các phần của giây xuống đến micro giây.
-
3
Đọc ngày UTC
Giá trị đã chuyển đổi hiển thị theo chuẩn UTC với định dạng YYYY-MM-DD HH:MM:SS.micro giây, sẵn sàng để sao chép.
-
4
Chuyển đổi ngược
Nhập một ngày và giờ theo chuẩn UTC để lấy giá trị epoch theo giây hoặc mili giây.
“Thời kỳ” là gì?
Thời gian trong hệ thống Unix được tính bằng các giây (hoặc các phần số của giây) kể từ ngày 1 tháng 1 năm 1970 lúc 00:00:00 UTC, được gọi là kỷ nguyên Unix. Đây là định dạng dấu thời gian chủ đạo có thể đọc được bởi máy tính trong phần mềm.
- Hệ thống POSIX:
time()trả về số giây kể từ thời điểm khởi đầu (epoch). - JavaScript: Hàm
Date.now()trả về giá trị tính bằng mili giây. - Java: Hàm
System.currentTimeMillis()trả về giá trị tính bằng mili giây. - Go:
time.Now().Unix()trả về giá trị bằng giây;UnixNano()trả về giá trị bằng nano giây.
Độ chính xác theo độ lớn
| Số chữ số | Độ chính xác | Ví dụ |
|---|---|---|
| 10 | giây | 1.729.523.412 |
| 13 | mili giây | 1.729.523.412.000 |
| 16 | micro giây | 1.729.523.412.000.000 |
| 19 | nano giây | 1.729.523.412.000.000.000 |
Bộ chuyển đổi này chấp nhận giây, mili giây và các giá trị có phần thập phân; hãy đặt công tắc độ chính xác phù hợp với dữ liệu nhập vào.
Thời điểm ghi nhận quan trọng
- 0 – Ngày 1 tháng 1 năm 1970, lúc 00:00:00 UTC; chính là thời điểm khởi đầu của chu kỳ lịch sử này.
- 1.000.000.000 – Ngày 9 tháng 9 năm 2001, lúc 01:46:40 UTC. Một khoảnh khắc phổ biến trong các sự kiện kỷ niệm “giây thứ tỷ”.
- 1.234.567.890 – Ngày 13 tháng 2 năm 2009, lúc 23:31:30 UTC.
- 2.147.483.647 – Ngày 19 tháng 1 năm 2038, lúc 03:14:07 UTC. Vấn đề Y2K38: hiện tượng tràn bộ nhớ 32 bit có dấu.
- 10.000.000.000 – Tương lai xa: ngày 20 tháng 11 năm 2286, lúc 17:46:40 UTC.
Vấn đề Y2K38
Các hệ thống lưu thời gian Unix dưới dạng số nguyên 32 bit có dấu sẽ tràn số tại 2.147.483.647 giây (ngày 19 tháng 1 năm 2038). Các hệ thống hiện đại sử dụng số nguyên 64 bit, giúp đẩy vấn đề này ra xa hơn cả thời điểm “chết nhiệt” của Mặt Trời. Các hệ thống nhúng cũ và cơ sở dữ liệu cũ vẫn có thể bị ảnh hưởng; hãy kiểm tra ngăn xếp công nghệ của bạn.
Những chi tiết tinh tế về múi giờ
Thời gian epoch về bản chất là UTC. Khi chuyển đổi để hiển thị, bạn cần áp dụng một múi giờ.
- Tên IANA (
America/Los_Angeles,Europe/Berlin): tự động xử lý giờ tiết kiệm ánh sáng ban ngày. - Độ lệch (
-08:00,+05:30): độ lệch cố định; không nhận biết DST. - Viết tắt (
PST,CEST): không rõ ràng; các khu vực khác nhau dùng cùng một cách viết tắt. Không nên dùng để lưu trữ.
Các quy tắc DST thay đổi theo thời gian. Một dấu thời gian lịch sử trong America/New_York sử dụng các quy tắc DST đang có hiệu lực vào ngày đó, chứ không phải các quy tắc hiện hành. Bộ chuyển đổi này luôn hiển thị giờ UTC. Để xem thời điểm đó theo khu vực của bạn, hãy diễn giải kết quả UTC bằng tên IANA hoặc độ lệch cố định.
ISO 8601 so với RFC 2822
Về các dấu thời gian trong định dạng dữ liệu:
- ISO 8601 (
2024-10-21T14:30:12Z): tiêu chuẩn hiện đại được ưu tiên sử dụng, có thể sắp xếp và không gây nhầm lẫn. - RFC 2822 (
Mon, 21 Oct 2024 14:30:12 +0000): được sử dụng trong các tiêu đề HTTP và email.
Đối với người dùng: định dạng cục bộ theo quy ước ngôn ngữ địa phương của họ.
Làm việc với giây nhuận
Thời gian POSIX không đếm giây nhuận; khi một giây nhuận được chèn vào, hệ thống lặng lẽ lùi lại một giây. Trong khi đó, TAI (Giờ Nguyên tử Quốc tế) lại đếm chúng. Đối với hầu hết mã ứng dụng, POSIX là lựa chọn đúng; tuy nhiên, trong thiên văn học, trắc địa và đo thời gian độ chính xác cao, nên dùng TAI hoặc UTC có nhận biết giây nhuận.
Câu hỏi thường gặp
Hãy kiểm tra công tắc độ chính xác: giá trị tính bằng mili giây (13 chữ số) được đọc thành giây sẽ cho một ngày rất xa trong tương lai. Công cụ luôn hiển thị giờ UTC; hãy so sánh kết quả với độ lệch giờ địa phương của bạn trước khi chuyển đổi.
Đúng vậy. Công cụ này chấp nhận các thời điểm âm, tức là các ngày trước thời kỳ Unix. Ví dụ, ngày 31 tháng 12 năm 1969 lúc 23:59:59 UTC tương ứng với giá trị -1.
Lưu epoch (UTC) và tên múi giờ IANA trong các trường riêng biệt. Định dạng ISO 8601 kèm độ lệch (ví dụ: 2024-10-21T14:30-07:00) giữ lại độ lệch này nhưng mất khả năng diễn giải lại khi quy tắc DST thay đổi. Hãy dùng tên IANA để lưu trữ chuẩn tắc.
Không. Giá trị chỉ được gửi đến máy chủ để thực hiện việc chuyển đổi và không được lưu trữ hay ghi nhật ký. Công cụ ghi một số đếm ẩn danh các lần chuyển đổi, không kèm giá trị.
Công cụ liên quan
Bảng tham chiếu ASCII
Bảng ASCII đầy đủ từ 0 đến 127 với giá trị thập phân, thập lục phân, bát phân, nhị phân và ký hiệu tham chiếu ký tự số HTML, gồm NUL, LF và DEL.
Tham chiếu ký tự HTML
Danh sách có thể tìm kiếm các thực thể HTML, mã tên và mã số tương ứng của chúng, cùng chức năng sao chép chỉ với một cú nhấp cho các ký tự đặc biệt và biểu tượng.
Bảng tham khảo phím tắt
Tìm phím tắt mặc định theo tài liệu của VS Code, Chrome và Bash dùng GNU Readline trên macOS, Windows và Linux.
Trình xem hex của tệp nhị phân
Chọn một tệp và kiểm tra phần dữ liệu giới hạn từ bất kỳ offset byte hợp lệ nào dưới dạng hex dump cục bộ với cột offset, hex và ASCII.
Công cụ xác thực số điện thoại
Kiểm tra cấu trúc số theo quốc gia và xem khu vực, loại số cùng các định dạng E.164, quốc tế, quốc gia và RFC 3966.
Bộ chuyển đổi Base64 sang Hex
Chuyển chuỗi Base64 chuẩn thành các byte nền tảng được viết dưới dạng hexadecimal liên tục in hoa. Giải mã nghiêm ngặt, lý tưởng cho token, khóa và chữ ký JWT.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- Konverter Epoch [ID]
- ตัวแปลง Epoch [TH]
- Konverterare för epok [SV]
- Convertidor de Epoch [ES]
- Epoch-Konverter [DE]
- Epoch-converter [NL]
- Epoch 변환기 [KO]
- Konwerter epoki Unix [PL]
- Epoch Dönüştürücü [TR]
- محوّل الطابع الزمني (Epoch) [AR]
- Convertisseur d'Époque [FR]
- エポック変換ツール [JA]
- Conversor de Epoch [PT]
- Unix 时间戳转换器 [ZH]
- Epoch Converter [EN]
- Convertitore Epoch [IT]
- Конвертер эпохи Unix [RU]