Thời gian Unix là gì và Kỷ nguyên Unix là khi nào?

Thời gian Unix là gì và Kỷ nguyên Unix là khi nào?

Tại sao Unix có khái niệm thời gian riêng? Kỷ nguyên là gì và vấn đề của Y2038 là gì?

Unix time là một phương tiện đại diện cho một ngày và giờ cụ thể, được sử dụng bởi Linux, macOS và nhiều hệ thống tương thích khác. Nó phổ biến đến mức có thể bạn đang sử dụng nó mà không hề hay biết. Tuy nhiên, một khi bạn hiểu Unix time, bạn sẽ nhận ra nó trong nhiều ngữ cảnh. Một số công cụ có thể giúp bạn làm việc với Unix time.

Mục đích của Unix Time là gì?

Thời gian Unix là tổng số giây kể từ một ngày và giờ cố định. Đó là một định dạng ngày / giờ (hoặc dấu thời gian) trông khác với những ngày và giờ con người có thể đọc được mà chúng ta đã quen. Điều này hoàn toàn là vì lý do hiệu quả. Sẽ tốn ít dung lượng hơn rất nhiều để lưu trữ một số đại diện cho giây so với lưu trữ các giá trị riêng biệt cho năm, tháng, giờ, v.v.

Tất nhiên, trong điều kiện hiện đại, sự khác biệt về không gian không phải là quá nhiều. Nhưng hãy cân nhắc rằng Unix có nguồn gốc từ cuối những năm 1960 khi dung lượng lưu trữ có sẵn nhỏ hơn nhiều. Dấu thời gian cũng được sử dụng rất nhiều, vì vậy bộ nhớ của chúng sẽ tăng lên. Ví dụ: mỗi tệp có ba dấu thời gian được liên kết với nó.

Định dạng này hầu như không thể dịch được trong đầu bạn trừ khi bạn là một thiên tài toán học. Nhưng nó vẫn có một số lợi thế so với các lựa chọn thay thế dễ đọc hơn như Thứ 4, ngày 21 tháng 10 năm 2015 07:28:00 GMT . Bạn có thể đặt hàng hai dấu thời gian Unix rất dễ dàng, trong nháy mắt. Việc tìm ra sự khác biệt giữa hai dấu thời gian cũng thường nhanh hơn. Điều này đặc biệt đúng đối với những ngày gần nhau, chẳng hạn như vào những ngày liền kề.

Thời gian Unix là gì và Kỷ nguyên Unix là khi nào?

Giới thiệu về Kỷ nguyên

Vì vậy, thời gian Unix là tổng số giây kể từ một thời điểm cụ thể. Nhưng đó là thời điểm nào? Đó là 00:00:00 UTC vào ngày 1 tháng 1 năm 1970 . Đây thường được gọi là Kỷ nguyên Unix. Các lập trình viên đã chọn ngày này vì sự thuận tiện của kỷ nguyên vì đây là ngày tròn gần nhất khi họ phát minh ra thời gian Unix.

Bạn có thể đã xem ngày này khi có điều gì đó không ổn. Rõ ràng đó là một lỗi, nhưng một lỗi trông rất kỳ lạ khi nó dẫn đến một ngày từ trước thời điểm mà nhiều người trong chúng ta được sinh ra! Tuy nhiên, điều đó hoàn toàn dễ hiểu khi bạn biết về Unix time. Nếu bất kỳ hệ thống nào đang cố gắng hiển thị một dấu thời gian không có bất kỳ giá trị nào, nó thường sẽ dịch về 0 và dẫn đến ngày kỷ nguyên chính xác.

Định dạng dữ liệu thời gian Unix

Nói một cách chính xác, không có một cái nào cả. Kiểu dữ liệu ban đầu là một số nguyên 32 bit và điều này thường vẫn xảy ra, ngay cả trong các hệ thống mạnh mẽ hơn nhiều.

Kiểu dữ liệu này cho phép giá trị lưu trữ tổng cộng 2 ^ 32 giây, tức là chỉ hơn 136 năm. Giá trị này thường được ký, có nghĩa là nó có thể âm hoặc dương. Vì vậy, nó thường đại diện cho 68 năm ở hai bên của kỷ nguyên tức là 1902-2038.

Tất nhiên, đây vẫn là một khoảng thời gian giới hạn. Nhưng việc sử dụng chính của định dạng dấu thời gian là cho các khái niệm như sửa đổi tệp. Nhu cầu rất lớn là thể hiện thời gian gần với hiện tại, hơn là lịch sử cổ đại hoặc xa trong tương lai. Ngay cả đối với các ứng dụng như lịch, hiếm khi cần phải đại diện cho các ngày hơn một vài thập kỷ trong tương lai.

Nhưng điều đó không có nghĩa là khoảng thời gian giới hạn này không có vấn đề gì…

Vấn đề năm 2038

Lỗi Y2K ( một trong những lỗi lập trình tồi tệ nhất trong lịch sử ) đã ảnh hưởng đến các hệ thống máy tính lưu trữ nhiều năm dưới dạng giá trị hai chữ số. Khi năm 2000 xuất hiện, những hệ thống như vậy coi nó như thể năm 1900. Trong trường hợp này, điều này không quá thảm khốc như người ta lo sợ, chủ yếu là do nhiều người đã dành rất nhiều thời gian và công sức trước để chuẩn bị cho nó.

Nếu bạn đã chú ý trong phần trước, bạn có thể đã phát hiện ra một vấn đề tương tự có thể ảnh hưởng đến thời gian Unix. Chà, thời gian Unix có một vấn đề dữ liệu của riêng nó: vấn đề Y2k38. (Nó thường được coi là một vấn đề, không phải một lỗi; có lẽ chúng ta đã trở nên lạc quan hơn kể từ năm 2000!) Khi thời gian Unix thực sự hết vào năm 2038, các hệ thống sẽ coi ngày mới là 1902 hoặc 1970. Hoặc có thể là chúng ' Tôi sẽ thất bại hoàn toàn.

Ít nhất thì vấn đề này sẽ không xảy ra với chúng tôi vào lúc nửa đêm của đêm giao thừa. Giây cuối cùng của thời gian Unix 32-bit sẽ rơi vào ngày 19 tháng 3. Cuối cùng, chúng tôi có thể sẽ nâng cấp hầu hết các hệ thống vào năm 2038 hoặc dù sao thì chúng cũng sẽ lỗi thời.

Một số tài nguyên hữu ích về dấu thời gian

Các Epoch Chuyển đổi trang web có thể là dấu thời gian toàn diện nhất chuyển đổi có sẵn. Nó bắt đầu bằng cách hiển thị thời gian Unix hiện tại - theo thời gian thực - và thêm hầu hết mọi tính năng có thể tưởng tượng được trên đó. Công dụng chính của nó là chuyển đổi giữa dấu thời gian và ngày tháng mà con người có thể đọc được, theo cả hai hướng.

Dan's Tools là một bộ sưu tập khổng lồ các ứng dụng web hữu ích, một trong số đó là công cụ chuyển đổi dấu thời gian . Nó cơ bản hơn, nhưng có một bản trình bày rất rõ ràng và dễ sử dụng.

Time.is trình bày một cái nhìn khác, thậm chí còn tối giản hơn. Nó hiển thị thời gian ở một số định dạng, bao gồm cả thời gian Unix. Nó bao gồm thời gian hiện tại trong tiêu đề trang của nó rất hữu ích.

Thời gian Unix là gì và Kỷ nguyên Unix là khi nào?

Sử dụng Unix Time với các công cụ dòng lệnh

Trên Linux và macOS, chương trình ngày là tiện ích cốt lõi để xử lý ngày / giờ, bao gồm cả dấu thời gian Unix. Được gọi mà không có bất kỳ đối số nào, nó trả về ngày / giờ hiện tại ở định dạng con người có thể đọc được:

$ date Wed Feb 10 12:28:30 GMT 2021

Nếu bạn cần ngày / giờ hiện tại theo thời gian Unix, hãy sử dụng đối số +% s :

$ date +%s 1612960114

Bạn có thể chuyển đổi từ một ngày mà con người có thể đọc được thành một dấu thời gian bằng cách sử dụng cờ -d nếu phiên bản ngày của bạn hỗ trợ nó. Theo mặc định, hầu hết các phiên bản Linux phải:

$ date -d "Jan 2 1970" +%s 82800

Trên macOS, date là một chương trình khác, yêu cầu một bộ cờ khác:

$ date -j -f "%b %d %Y %T" "Jan 02 1970 00:00:00" "+%s" 82800

Đi theo hướng khác, bạn có thể chuyển đổi từ dấu thời gian Unix bằng cách sử dụng cờ -r :

$ date -r 1600000000 Sun 13 Sep 2020 13:26:40 BST

Một số chương trình khác sử dụng định dạng % s để xử lý thời gian Unix. Ví dụ: nếu bạn muốn hiển thị ngày sửa đổi của tệp trong Unix time, với phiên bản Linux của ls , bạn có thể sử dụng như sau:

$ ls -l --time-style=+%s index.tmp.html -rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Cách sử dụng Unix Time trong ngôn ngữ lập trình

PHP có hàm  time () trả về dấu thời gian Unix hiện tại. Hàm date () của nó lấy dấu thời gian làm đối số thứ hai:

$ php -r 'echo date("Y-m-d", time());' 2021-02-11

JavaScript tiếp cận mọi thứ theo một cách thú vị. Nó có một phương thức Date.now () để lấy số mili giây kể từ kỷ nguyên Unix. Tất nhiên, bạn có thể chia giá trị này cho 1.000 và làm tròn kết quả để đưa ra thời gian Unix tương đương tính bằng giây:

> Math.floor(Date.now() / 1000) 1613083012

Hiểu thời gian Unix

Unix time là một khái niệm đơn giản được sử dụng phổ biến ở nhiều nơi. Một khi bạn hiểu nó, bạn có thể thấy nó khá hữu ích, chẳng hạn khi tính toán chênh lệch thời gian. Bạn cũng có thể nhận ra khi nó có thể là nguyên nhân của một số lỗi.

Các khái niệm như kỷ nguyên và dấu thời gian là một phần quan trọng để bắt đầu với Linux. Để tìm hiểu thêm về các yếu tố cần thiết như ls , hãy xem hướng dẫn của chúng tôi về các lệnh Linux cơ bản.


Cách sao chép và dán trên Chromebook

Cách sao chép và dán trên Chromebook

Điều đầu tiên bạn có thể thắc mắc khi chuyển sang Chromebook là làm thế nào để thực hiện những thứ cơ bản — loại nội dung bạn có trong tay trong hệ điều hành trước đó của mình. Sao chép và dán là một trong những chức năng cơ bản mà bạn phải sử dụng vào lúc này hay lúc khác.

Làm thế nào để làm bài kiểm tra đánh máy trên Linux với tt

Làm thế nào để làm bài kiểm tra đánh máy trên Linux với tt

Trong thời đại công nghệ hiện đại, đánh máy đã trở thành một trong những hoạt động phổ biến nhất cho rất nhiều ngành nghề. Học cách gõ nhanh hơn với độ chính xác có thể giúp bạn hoàn thành nhiều việc hơn trong cùng một khoảng thời gian.

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Wi-Fi không hoạt động trên Ubuntu? Đây là cách khắc phục

Ubuntu phổ biến vì tính mạnh mẽ và tương đối ít lỗi. Nhưng chắc chắn không phải là không có vấn đề. Một trong những vấn đề như vậy là với trình điều khiển Wi-Fi của nó. Bạn có thể bật nguồn hệ thống của mình chỉ khi thấy rằng Wi-Fi của bạn không hoạt động.

Cách tạo và quét mã QR trên Chromebook

Cách tạo và quét mã QR trên Chromebook

Mã phản hồi nhanh, gọi tắt là mã QR, là mã vạch nâng cao chứa nhiều thông tin hơn mã vạch truyền thống. Các mã này là hai chiều, cho phép bạn quét chúng theo chiều dọc hoặc chiều ngang.

Cách cài đặt và gỡ bỏ các gói trong Arch Linux

Cách cài đặt và gỡ bỏ các gói trong Arch Linux

Bạn muốn cài đặt các gói trên Arch Linux nhưng không biết làm thế nào? Rất nhiều người gặp phải vấn đề này khi lần đầu tiên họ chuyển từ các bản phân phối dựa trên Debian sang Arch. Tuy nhiên, bạn có thể dễ dàng quản lý các gói trên hệ thống dựa trên Arch của mình bằng cách sử dụng các trình quản lý gói.

Cách cài đặt Spotify trên Linux

Cách cài đặt Spotify trên Linux

Spotify là một trong những dịch vụ phát trực tuyến nhạc lớn nhất hiện có. Nó có các ứng dụng khách dành cho cả thiết bị di động (Android và iOS) và máy tính để bàn (Mac và Windows).

9 lệnh cơ bản giúp bạn bắt đầu với Linux

9 lệnh cơ bản giúp bạn bắt đầu với Linux

Hướng dẫn cách sử dụng Linux thường mong đợi bạn thực hiện một số thao tác nhất định trong thiết bị đầu cuối, điều này thoạt đầu có vẻ đáng sợ. Nhưng không băn khoăn; Bảng lừa đảo lệnh Linux này sẽ trình bày quá trình mở một thiết bị đầu cuối và đưa ra một vài lệnh hữu ích.

Trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu năm 2020

Trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu năm 2020

Bỏ qua tất cả những điều sơ sài, đây là danh sách các trình chỉnh sửa video miễn phí tốt nhất cho Ubuntu mà bạn có thể sử dụng để tạo ra những video tuyệt đẹp.

15 chủ đề hay nhất cho Ubuntu 20.04 vào năm 2020

15 chủ đề hay nhất cho Ubuntu 20.04 vào năm 2020

Rất nhiều chủ đề cập nhật mới đã sẵn sàng được cài đặt trên máy tính để bàn GNOME mới của Ubuntu 20.04. Đây là danh sách các chủ đề ubuntu tốt nhất vào năm 2020

Cách di chuyển tệp Linux bằng lệnh Mv

Cách di chuyển tệp Linux bằng lệnh Mv

Mặc dù bạn có thể đã biết cách di chuyển tệp trong Linux bằng trình duyệt tệp GUI, nhưng bạn có thể tự hỏi liệu có lệnh di chuyển trong thiết bị đầu cuối cho phép bạn nhanh chóng di chuyển tệp đến các thư mục khác nhau hay không. Lệnh mv là lệnh bạn muốn và nó dễ sử dụng với cú pháp đơn giản và một số cờ an toàn tùy chọn.