Unix時間とは何ですか?Unixエポックはいつでしたか?

Unix時間とは何ですか?Unixエポックはいつでしたか?

Unixに独自の時間の概念があるのはなぜですか?エポックとは何ですか?Y2038問題は何ですか?

Unix時間は、Linux、macOS、および他の多くの相互運用可能なシステムで使用される特定の日付と時刻を表す手段です。それは非常に普及しているので、おそらくあなたはそれを意識せずにそれを使用しています。ただし、Unix時間を理解すると、多くの状況でそれを見つけることができます。いくつかのツールは、Unix時間での作業に役立ちます。

Unix時間の目的は何ですか?

Unix時間は、固定された日時からの合計秒数です。これは、人間が読み取れる日付と時刻とは異なって見える日付/時刻(またはタイムスタンプ)形式です。これは純粋に効率上の理由によるものです。年、月、時間などの個別の値を格納するよりも、秒を表す単一の数値を格納する方がはるかに少ないスペースで済みます。

もちろん、現代的には、スペースの違いはそれほど大きくありません。しかし、Unixは、利用可能なストレージがはるかに小さかった1960年代後半に始まったと考えてください。タイムスタンプも頻繁に使用されるため、それらのストレージは合計されます。たとえば、すべてのファイルには3つのタイムスタンプが関連付けられています。

あなたが数学の天才でない限り、フォーマットを頭の中で翻訳することはほとんど不可能です。ただし、2015年10月21日水曜日、グリニッジ標準時07:28:00など、より読みやすい代替手段に比べて、まだいくつかの利点があります。一目で、2つのUnixタイムスタンプを非常に簡単に注文できます。また、通常、2つのタイムスタンプの違いを計算する方が高速です。これは、隣接する日など、互いに近い日付に特に当てはまります。

Unix時間とは何ですか?Unixエポックはいつでしたか?

エポックについて

したがって、Unix時間は、特定の時点からの合計秒数です。しかし、その時点は何ですか?それはだ00:00:001970年1月1日。これは、Unixエポックと呼ばれることがよくあります。プログラマーは、Unix時間を発明したときに最も近いラウンド日付であったため、便宜上この日付を選択しました。

何かがうまくいかなかったときに、この日付を見たことがあるかもしれません。明らかにバグですが、私たちの多くが生まれる前の日付になると非常に奇妙に見えます!ただし、Unix時間について知っていれば、それは完全に理解できます。システムが値のないタイムスタンプを表示しようとすると、多くの場合0に変換され、正確なエポック日付になります。

Unix時間データ形式

厳密に言えば、1つはありません。元のデータ型は32ビット整数でしたが、はるかに強力なシステムでも、これが当てはまることがよくあります。

このデータ型を使用すると、値に合計2 ^ 32秒を格納できます。これは、136年強です。この値は通常、符号付きです。つまり、負または正の値になります。したがって、それは通常、エポックの両側、つまり1902-2038で68年を表します。

もちろん、これはまだ限られた期間です。ただし、タイムスタンプ形式の主な用途は、ファイルの変更などの概念でした。古代の歴史や遠い未来ではなく、現在に近い時間を表す必要がありました。カレンダーなどのアプリケーションの場合でも、数十年以上先の日付を表す必要はめったにありません。

しかし、それはこの限られた期間に問題がないという意味ではありません…

2038年問題

Y2Kバグ(歴史上最悪のプログラミングミスの1つ)は、年を2桁の値として保存するコンピューターシステムに影響を及ぼしました。2000年になると、そのようなシステムは1900年のように扱いました。この場合、多くの人が事前に多くの時間と労力を費やして準備したため、これは恐れられたほど壊滅的なものではありませんでした。

前のセクションで注意を払っていた場合は、Unix時間に影響を与える可能性のある同様の問題を発見した可能性があります。ええと、Unix時間にはそれ自身のデータ問題があります:Y2k38問題。(これはバグではなく問題と呼ばれることがよくあります。2000年以降、楽観的になっているかもしれません!)2038年にUnix時間が文字通りなくなると、システムは新しい日付を1902または1970として扱います。完全に失敗するだけです。

少なくとも、この問題は大晦日の真夜中のストロークで私たちを襲うことはありません。32ビットUnix時間の最後の秒は、3月19日になります。最終的には、2038年までにほとんどのシステムをアップグレードするか、とにかくそれまでに廃止される可能性があります。

いくつかの便利なタイムスタンプリソース

エポックコンバータサイトは、おそらく最も包括的なタイムスタンプコンバータです。まず、現在のUnix時間をリアルタイムで表示し、その上に考えられるほぼすべての機能を追加します。その主な用途は、タイムスタンプと人間が読める形式の日付を双方向で変換することです。

Dan's Toolsは、便利なWebアプリの膨大なコレクションであり、その1つがタイムスタンプコンバーターです。それはより基本的ですが、非常にきれいなプレゼンテーションを持ち、使いやすいです。

Time.isは、さらにミニマルな外観を提供します。Unix時間を含む、さまざまな形式で時間を表示します。ページタイトルに現在の時刻が含まれているので便利です。

Unix時間とは何ですか?Unixエポックはいつでしたか?

コマンドラインツールでのUnixTimeの使用

LinuxおよびmacOSでは、日付プログラムは、Unixタイムスタンプを含む日付/時刻を処理するためのコアユーティリティです。引数なしで呼び出されると、現在の日付/時刻が人間が読める形式で返されます。

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

Unix時間の現在の日付/時刻が必要な場合は、+%s引数を使用します。

$ date +%s 1612960114

日付のバージョンでサポートされている場合は、-dフラグを使用して、人間が読める形式の日付からタイムスタンプに変換できます。ほとんどのLinuxバージョンは、デフォルトで次のようになっているはずです。

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

macOSでは、dateは別のプログラムであり、別のフラグのセットが必要です。

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

反対方向に進むと、-rフラグを使用してUnixタイムスタンプから変換できます。

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

他のいくつかのプログラムは、%s形式を使用してUnix時間を処理します。たとえば、Linuxバージョンのlsでファイルの変更日をUnix時間で表示する場合は、次を使用できます。

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

プログラミング言語でUnix時間を使用する方法

PHPには、 現在のUnixタイムスタンプを返すtime()関数があります。そのdate()関数は、2番目の引数としてタイムスタンプを取ります。

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

JavaScriptは興味深い方法で物事にアプローチします。Unixエポックからのミリ秒数を取得するDate.now()メソッドがあります。もちろん、これを1,000で割り、結果を丸めて、同等のUnix時間を秒単位で求めることができます。

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

Unix時間を理解する

Unix時間は、多くの場所で発生する単純な概念です。一度理解すれば、たとえば時差を計算するときに非常に役立つことがあります。また、それが特定のバグの原因である可能性がある場合も認識できます。

エポックやタイムスタンプなどの概念は、Linuxを使い始める上で重要な部分です。lsなどの重要事項の詳細については、基本的なLinuxコマンドのガイドをご覧ください。


2020年のUbuntu20.04の15のベストテーマ

2020年のUbuntu20.04の15のベストテーマ

多くの新しい更新されたテーマは、Ubuntu20.04の新しいGNOMEデスクトップにインストールする準備ができています。ここに2020年の最高のubuntuテーマのリストがあります

Ubuntuの「Alt-Tab」でWindowsのグループ化を解除する方法

Ubuntuの「Alt-Tab」でWindowsのグループ化を解除する方法

Ubuntuでは、デフォルトで、Windowsの代わりにアプリケーションを切り替えることができます。これを元に戻し、UbuntuのAlt-Tabでタブのグループ化を解除する方法は次のとおりです。

Ubuntu20.04に最適な10以上のGNOME拡張機能

Ubuntu20.04に最適な10以上のGNOME拡張機能

Gno-Menu、Extended Gesturesなどの人気のある拡張機能の多くは、Ubuntu20.04では機能しません。したがって、ここに最も効果的なGNOME拡張機能のリストがあります

7最高のUbuntuダイナミック壁紙アプリ

7最高のUbuntuダイナミック壁紙アプリ

アプリを使用してUbuntuのネイティブ壁紙をスライドショーすることはいつでもできますが、壁紙を動的にダウンロードして設定するためのアプリをいくつか紹介します。

Ubuntuのルートスーパーユーザーの違い

Ubuntuのルートスーパーユーザーの違い

Ubuntuのルートスーパーユーザーの違いは何ですか?さて、ここでカバーしてもらいます。

Ubuntu12.04用のTeamViewer8をインストールします

Ubuntu12.04用のTeamViewer8をインストールします

このビデオでは、完全なガイド付きのubuntu12.04システム用のTeamViewer8をインストールして使用します。しかし、これはウィンドウでも同じように機能します。

2020年のUbuntu用の最高の無料ビデオエディタ

2020年のUbuntu用の最高の無料ビデオエディタ

すべての綿毛を除いて、ここにあなたが素晴らしいビデオを作成するために使うことができるUbuntuのための最高の無料のビデオエディタのリストがあります。

Linuxを使い始めるための9つの基本コマンド

Linuxを使い始めるための9つの基本コマンド

Linuxのハウツーガイドでは、ターミナルで特定の操作を実行することを期待していることがよくありますが、これは最初は恐ろしいように思えます。しかし、心配する必要はありません。このLinuxコマンドのチートシートでは、ターミナルを開いていくつかの便利なコマンドを発行するプロセスについて説明します。

ArchLinuxでパッケージをインストールおよび削除する方法

ArchLinuxでパッケージをインストールおよび削除する方法

Arch Linuxにパッケージをインストールしたいのですが、方法がわかりませんか?多くの人は、DebianベースのディストリビューションからArchに最初に移行するときにこの問題に直面します。ただし、パッケージマネージャーを使用して、Archベースのシステムでパッケージを簡単に管理できます。

UbuntuからAndroidへの5つの最高のWi-Fiファイル転送アプリ

UbuntuからAndroidへの5つの最高のWi-Fiファイル転送アプリ

FTP、ピアツーピアファイル転送、Wi-Fi転送などのメカニズムを使用すると、AndroidとUbuntuの間でファイルを頻繁に共有する場合に時間を節約できます。