とっちゃん@nyanco! です。
今回は「16進数」で表記された「エポック秒(UNIX時間)」を「日本標準時間」に変換する方法の覚書です。
まぁまぁマニアックなお話となりますにゃ〜
ただ、変換手順に関してはめちゃ簡単ですにゃ〜
ざっくりと「16進数」「エポック秒」「UTC」とは
まずは普段あまり見慣れない「16進数」「エポック秒」「UTC」というワードについて、それぞれ簡単に解説しておきます。
「16進数」とは
「16進数」とは数値の表現方法(数え方)のことで、日常的に使われている「10進数」と比べると分かりやすいです。
10進数 | 16進数 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | A |
10進数 | 16進数 |
---|---|
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
16 | 10 |
17 | 11 |
18 | 12 |
19 | 13 |
20 | 14 |
10進数 | 16進数 |
---|---|
21 | 15 |
22 | 16 |
23 | 17 |
24 | 18 |
25 | 19 |
26 | 1A |
27 | 1B |
28 | 1C |
29 | 1D |
30 | 1E |
…なんとなく分かるようで、やっぱり良く分かりませんにゃ〜
アルファベットが出てきた時点で「??」と頭がフリーズしてしまいそうになりますが、考え方としては以下のようにとてもシンプルです。
- 「0」〜「9」の「10個の数字」で1ケタ進むのが「10進数」
- 「0」〜「9」と「A」〜「F」の「16個の数字とアルファベット」で1ケタ進むのが「16進数」
にゃるほど!
1ケタの数字だけでは「10個」しかないから、そこにアルファベット「A、B、C、D、E、F」という「6個」を加えて「16個」にしているということですかにゃ〜
ズバリその通りで、16個の数字とアルファベットで1ケタ進むことから「16進数」と考えると覚えやすいかと。
コンピューターの世界では「0」と「1」だけで表す「2進数」と並んで、この「16進数」も良く使われています。
クリエイター目線で身近なところでいうと、色を表すカラーコード(例:FF0000)なんかも「16進数」で表記されてますにゃ〜
「エポック秒(UNIX時間)」とは
恐らくこの「エポック秒(UNIX時間)」というのが日常的に一番見慣れないワードではないでしょうか。
まず「エポック秒」と「UNIX時間」というのはイコールで単純に呼び名の違いです。
一体何なのかと一言で表すと…
多くのOSで使われている、世界協定時刻(UTC)1970年1月1日午前0時0分0秒から経過した秒数
となります。
…こちらも分かるようでやっぱり良く分からんですにゃ〜
超簡単な例を挙げると以下のような感じです。
エポック秒 | UTC時刻表示 | メモ |
---|---|---|
1 | 1970年1月1日午前0時0分1秒 | 1秒 |
10 | 1970年1月1日午前0時0分10秒 | 10秒 |
60 | 1970年1月1日午前0時1分0秒 | 1分 |
3600 | 1970年1月1日午前1時0分0秒 | 1時間 |
86400 | 1970年1月2日午前0時0分0秒 | 1日(24時間) |
もう少し詳しく言うと、単純な経過秒数ではなく「閏秒(うるうびょう)」を考慮しての計算となりますが、本記事ではスルーします。
にゃるほど!
1970年1月1日ジャストから経過した秒数ということですかにゃ〜
「UTC」とは
「UTC」とは「協定世界時」とも言われ、世界標準とされている時間のことです。
日本人として気になるのは日本時間との時差ですが、「UTC」から「9時間」進めると「日本時間」になるとだけ覚えていれば大体事足ります。
▼「UTC」について詳しくは下記記事をどうぞ!
本記事は「16進数」で表記された「エポック秒」を「日本標準時間」に変換する手順の解説となります。
「16進数」表記の「エポック秒」を「日本時間」に変換する方法
「6214E38E」は何年何月何日何時何分何秒?
今回は下記の「16進数」で表記された「エポック秒」をサンプルとして解説していきます。
6214E38E
この英数字の羅列が、一体いつの時間を示しているのか気になりますにゃ〜
暗号を解読していくようでワクワクしますにゃ〜
▼下記の表を埋めていく形で進めていきます。
16進数 | 10進数 | 日本時間 |
---|---|---|
6214E38E | ? | ? |
Step1. 「16進数」を「10進数」に変換
まずは「16進数」を「10進数」に変換していきます。
自力で計算するのは大変ですが、webツールを使えば一瞬で変換できます。
「16進数」のフォームに数値をコピペして「変換」をクリックするだけで、一瞬で「2進数」「8進数」「10進数」に変換してくれますにゃ〜
めちゃくちゃ簡単ですにゃ〜
「10進数」に変換すると、以下のような数値となりました。
16進数 | 10進数 | 日本時間 |
---|---|---|
6214E38E | 1645536142 | ? |
Step2. 「エポック秒」を「UTC表記」に変換
続いて「10進数」に変換した「エポック秒」を「日本時間」に変換していきますが、こちらもwebツールを使用します。
▼こちらも使い方は簡単で、「UNIX時間」のフォームに Step1. で変換した「10進数」の「エポック秒(UNIX時間)」をコピペして「計算」をクリックするだけ!
こちらのサイトはデフォルトで「UTC」と「JST(日本標準時)」との時差である「9時間」も考慮して計算してくれるので手っ取り早いですにゃ〜
▼一瞬で計算結果が出ました!果たして結果は…??
「2022年02月22日22時22分22秒」ということで、「2」が見事に揃ったスーパー猫の日スーパーにゃんこタイムが正解でしたにゃ〜
16進数 | 10進数 | 日本時間 |
---|---|---|
6214E38E | 1645536142 | 2022年02月22日 22:22:22 |
おわりに
とあることがきっかけで「エポック秒」について調べてるとこれは面白い!と感じたので、アーカイブがてら記事にしました。
今回も色々と勉強になりました!
それにしてもwebツールは本当に便利でありがたいですにゃ〜
webツール様々でございますにゃ〜
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント