Dấu thời gian Unix sang ngày
| UTC |
|
|
| Múi giờ địa phương của bạn |
|
Dấu thời gian Unix sang ngày là công cụ miễn phí giúp chuyển dấu thời gian Unix thành ngày giờ UTC và ngày giờ tương ứng theo múi giờ địa phương của bạn.
Dấu thời gian Unix là gì?
Dấu thời gian Unix là một con số biểu thị khoảng thời gian đã trôi qua kể từ 00:00:00 UTC ngày 1 tháng 1 năm 1970, còn gọi là thời điểm bắt đầu của Unix. Nhờ đó, các hệ thống có thể lưu trữ và so sánh các thời điểm theo cách gọn nhẹ, không phụ thuộc vào múi giờ.
Dấu thời gian Unix thường được tính bằng giây, nhưng một số API và ngôn ngữ lập trình sử dụng mili giây, micro giây hoặc nano giây. Bản thân con số không cho biết đơn vị, vì vậy bạn phải xác định từ tài liệu liên quan hoặc lược đồ dữ liệu. Với ngày tháng hiện nay, giá trị gồm mười chữ số thường được tính bằng giây, còn giá trị gồm mười ba chữ số thường được tính bằng mili giây. Tuy nhiên, số lượng chữ số chỉ là dấu hiệu tham khảo, không phải sự bảo đảm chính thức.
Lập trình viên thường cần thực hiện phép chuyển đổi này khi đọc phản hồi từ API của bên thứ ba, kiểm tra bản ghi cơ sở dữ liệu, xem nhật ký hoặc gỡ lỗi phép tính thời gian hết hạn. Việc chuyển đổi cũng hữu ích trước khi triển khai nếu tệp cấu hình lưu thời điểm kích hoạt, thời gian hết hạn của bộ nhớ đệm hoặc token dưới dạng số nguyên thay vì ngày giờ dễ đọc.
Làm thế nào để đổi dấu thời gian Unix thành ngày?
Nhập giá trị số vào Dấu thời gian Unix, sau đó xem kết quả tại UTC và Múi giờ địa phương của bạn. UTC là giá trị tham chiếu ổn định, còn kết quả địa phương cho biết cùng thời điểm đó sẽ hiển thị thế nào theo độ lệch múi giờ của bạn.
- Xác nhận rằng giá trị nguồn thực sự là dấu thời gian Unix.
- Kiểm tra đơn vị của giá trị là giây hay đơn vị nhỏ hơn, chẳng hạn như mili giây.
- Dùng kết quả UTC khi đối chiếu các hệ thống, nhật ký hoặc dữ liệu API.
- Dùng kết quả địa phương khi cần biết một người sẽ thấy thời điểm đó thế nào trên đồng hồ hoặc lịch.
Nếu có thể, chỉ nhập số nguyên. Dấu cách, dấu phân tách hàng nghìn, nhãn và dấu câu sao chép kèm theo không thuộc định dạng dấu thời gian. Ví dụ, 1,704,067,200 là cách trình bày để con người dễ đọc, còn 1704067200 là dạng thông thường để máy xử lý. Chữ cái có dấu và ký tự không thuộc bảng chữ cái Latin không mang ý nghĩa trong dấu thời gian Unix.
Cách công cụ xử lý chính xác trường nhập trống, giá trị thập phân, dấu phân tách và số cực dài chưa được nêu rõ. Hãy loại bỏ phần văn bản xung quanh và kiểm tra đơn vị trước khi coi ngày giờ trả về là kết quả chính xác để sử dụng.
Đọc kết quả UTC và giờ địa phương như thế nào?
Hãy xem giá trị UTC là mốc tham chiếu không phụ thuộc múi giờ, còn giá trị địa phương là cùng thời điểm đó sau khi điều chỉnh theo múi giờ của bạn. Đây không phải là hai sự kiện khác nhau.
Tại Việt Nam, giờ địa phương là UTC+7 và hiện không áp dụng giờ mùa hè. Vì vậy, dấu thời gian UTC thường hiển thị theo giờ địa phương muộn hơn bảy giờ. Các quy tắc múi giờ trong quá khứ và tương lai cũng có thể ảnh hưởng đến cách hiển thị giờ địa phương, đặc biệt tại những quốc gia hoặc vùng lãnh thổ khác.
Nếu kết quả lệch hàng chục năm so với ngày dự kiến, trước tiên hãy kiểm tra xem bạn có nhầm giữa giây và mili giây hay không. Nếu kết quả lệch đúng một hoặc vài giờ, hãy xem lại giả định về múi giờ thay vì thay đổi dấu thời gian. Kết quả lệch một ngày thường xảy ra khi thời điểm UTC nằm gần nửa đêm và độ lệch múi giờ đẩy nó sang ngày liền trước hoặc liền sau.
Dữ liệu nhập không hợp lệ có thể gồm chữ cái, nhãn chèn trong giá trị, trường trống hoặc một số nằm ngoài phạm vi ngày mà hệ thống nhận hỗ trợ. Thông báo lỗi chính xác và phạm vi số được công cụ hỗ trợ chưa được ghi rõ. Vì vậy, nếu không có kết quả hoặc kết quả có vẻ không hợp lý, hãy đối chiếu với hệ thống nguồn thay vì phỏng đoán.
Ví dụ chuyển đổi dấu thời gian
Các ví dụ sau dùng dấu thời gian được tính theo số giây nguyên.
Đầu vào 0
Kết quả UTC 1 January 1970 at 00:00:00 UTC
Số không đánh dấu thời điểm bắt đầu của Unix. Kết quả hiển thị theo giờ địa phương có thể khác nếu độ lệch múi giờ áp dụng không phải UTC.
Đầu vào 1704067200
Kết quả UTC 1 January 2024 at 00:00:00 UTC
Tại Anh, thời điểm này nằm trong khoảng áp dụng GMT nên đồng hồ địa phương cũng chỉ đúng nửa đêm. Khi hiển thị cùng dấu thời gian ở một múi giờ phía tây UTC, ngày vẫn sẽ là 31 tháng 12 năm 2023.
Dấu thời gian âm biểu thị các thời điểm trước thời điểm bắt đầu của Unix. Ví dụ, -1 theo quy ước có nghĩa là một giây trước thời điểm bắt đầu, tức 31 tháng 12 năm 1969 lúc 23:59:59 UTC. Khả năng hỗ trợ giá trị âm khác nhau tùy môi trường phần mềm, cơ sở dữ liệu và thư viện ngày giờ.
Khi nào không cần chuyển đổi dấu thời gian?
Bạn không cần chuyển đổi nếu chỉ có máy đọc giá trị và mọi hệ thống liên quan đều đã thống nhất về đơn vị cũng như thời điểm bắt đầu. Giữ nguyên giá trị số giúp tránh tạo ra ngày giờ đã định dạng nhưng sau đó có thể bị phân tích theo sai quy ước địa phương hoặc múi giờ.
- Không chuyển đổi dấu thời gian chỉ để so sánh thứ tự trước sau. Các dấu thời gian dùng cùng đơn vị có thể được so sánh trực tiếp dưới dạng số.
- Không thay dấu thời gian dạng số mà API yêu cầu bằng ngày đã định dạng, trừ khi đặc tả của API cho phép định dạng đó.
- Không liên tục chuyển đổi rồi phân tích lại dấu thời gian trong quá trình xử lý dữ liệu. Hãy giữ giá trị gốc và chỉ định dạng ở bước hiển thị.
- Nên chuyển đổi khi gỡ lỗi một bản ghi lạ, kiểm tra thời gian hết hạn hoặc xem xét dữ liệu của bên thứ ba trước khi nhập.
Kết quả chuyển đổi dễ đọc cũng không chứng minh rằng giá trị nguồn là chính xác. Một dấu thời gian bị nhập sai vẫn có thể tạo ra ngày giờ hoàn toàn hợp lệ, vì vậy hãy đối chiếu với sự kiện nghiệp vụ, trình tự nhật ký hoặc tài liệu nguồn.
Câu hỏi thường gặp
Tôi có thể dùng dấu thời gian 13 chữ số không?
Dấu thời gian hiện nay gồm 13 chữ số thường được tính bằng mili giây thay vì giây. Nếu công cụ chuyển đổi yêu cầu đơn vị giây, trước tiên hãy chia giá trị mili giây cho 1.000. Chỉ giữ lại phần dư nếu nơi nhận hỗ trợ phần lẻ của giây. Cách công cụ này xử lý đầu vào theo mili giây chưa được nêu rõ, vì vậy hãy kiểm tra đơn vị bằng một nguồn độc lập.
Dấu thời gian Unix có tính giây nhuận không?
Thời gian Unix tiêu chuẩn không biểu diễn giây nhuận dưới dạng một giây được đánh số riêng biệt. Các hệ thống thường ánh xạ thời gian thành một dãy liên tục, trong đó mỗi ngày có 86.400 giây Unix, dù cách đồng bộ đồng hồ có thể khác nhau giữa các nền tảng. Điều này hiếm khi làm thay đổi kết quả hiển thị đối với ngày giờ trong ứng dụng thông thường, nhưng lại quan trọng trong các công việc đo thời gian chuyên biệt.
Cùng một dấu thời gian có cho ra cùng một ngày ở mọi nơi không?
Dấu thời gian đó biểu thị cùng một thời điểm ở mọi nơi, nhưng ngày trên lịch và giờ địa phương có thể khác nhau tùy múi giờ. Một dấu thời gian gần nửa đêm UTC có thể hiển thị thành các ngày khác nhau tại London, New York và Tokyo. Hãy trao đổi dấu thời gian theo UTC và chỉ áp dụng định dạng địa phương khi hiển thị.
Tại sao bảng tính lại làm thay đổi dấu thời gian của tôi?
Bảng tính có thể hiển thị các giá trị dài bằng ký hiệu khoa học hoặc áp dụng định dạng ngày dành cho hệ thống số sê-ri ngày riêng của phần mềm. Hãy nhập cột dấu thời gian dưới dạng văn bản hoặc số nguyên nếu độ chính xác cho phép, rồi dùng công thức chuyển đổi rõ ràng. Trước khi chuyển đổi, hãy kiểm tra để bảo đảm bảng tính không làm tròn các chữ số cuối.
Sự cố năm 2038 có ảnh hưởng đến dấu thời gian Unix không?
Có thể, nếu hệ thống lưu số giây Unix dưới dạng số nguyên 32 bit có dấu, với phạm vi dương kết thúc vào tháng 1 năm 2038. Kiểu lưu trữ 64 bit hiện đại cho phép phạm vi rộng hơn nhiều, nhưng cơ sở dữ liệu cũ, thiết bị nhúng và một số thư viện vẫn có thể áp dụng giới hạn hẹp hơn. Trước khi triển khai, hãy kiểm tra kiểu lưu trữ và thư viện ngày giờ của mọi hệ thống nhận giá trị.
Các công cụ tương tự
Công cụ phổ biến
Dễ dàng tạo chữ ký tùy chỉnh của riêng bạn và tải xuống nó một cách dễ dàng.
Lấy kích thước của một văn bản theo Byte (B), Kilobyte (KB) hoặc Megabyte (MB).
Sử dụng công cụ ping của chúng tôi để kiểm tra nhanh chóng và hiệu quả trạng thái cùng thời gian phản hồi của bất kỳ trang web, máy chủ hoặc cổng nào.
Công cụ tra cứu IP của Digily Link cung cấp thông tin chi tiết về mọi địa chỉ IP. Hãy dùng dịch vụ trực tuyến miễn phí này để nhận dữ liệu IP toàn diện.
Tạo ngay liên kết WhatsApp miễn phí bằng Trình tạo liên kết WhatsApp của chúng tôi. Thêm tin nhắn tùy chỉnh và bắt đầu trò chuyện chỉ với một lần nhấp, không cần đăng nhập hay viết mã.