Unixタイムスタンプとは?
Unixタイムスタンプとは、ある特定の瞬間を1つの数値で表したものです。具体的には、協定世界時(UTC)で1970年1月1日の午前0時(00:00:00)を起点(Unixエポック)とし、そこから経過した秒数をカウントしています。ただの整数なので、地球上のどこにいても同じ瞬間であれば値はまったく同じ。だからこそ、ソフトウェアやデータベース、ログファイル、APIなどで日時を保存・やり取りするための世界標準として広く使われています。
この変換ツールは、そのままでは読み取りにくい数値を、人が理解できる日付と時刻に変換します。UTCに加えて、ニューヨーク・ロンドン・東京・シドニーといった主要都市の時刻も同時に表示するので、同じ瞬間が世界各地でどう見えるのかを一目で確認できます。
使い方
- 入力欄にUnixタイムスタンプを入力します(例:1700000000)。
- その値が「秒」か「ミリ秒」かを確認しましょう。多くのタイムスタンプは秒単位ですが、JavaScriptや一部のAPIはミリ秒単位(10桁ではなく13桁)を使います。
- 変換されたUTCの日時を読み取り、各タイムゾーンの表示と見比べてみてください。
計算式の仕組み
タイムスタンプを読みやすい日付に変換するには、エポックに秒数を足すだけです。
日時 = 1970年1月1日 00:00:00 UTC +(タイムスタンプの秒数)
逆に、ある現地時刻をタイムスタンプに戻すには、その瞬間とエポックとの間の秒数を測ります。なお、タイムゾーンが変わってもタイムスタンプそのものは変化しません。あくまで同じ瞬間の「見せ方」が変わるだけです。冬のニューヨークはUTC−5、ロンドンはUTC+0、東京はUTC+9、シドニーはサマータイムの有無によりUTC+10または+11となります。
計算例
タイムスタンプ1700000000を例に見てみましょう。エポックにこの秒数を足すと、2023年11月14日 22:13:20 UTCになります。同じ瞬間は、ニューヨークでは17:13:20、ロンドンでは22:13:20、そして東京では翌朝の07:13:20にあたります。
よくある質問
タイムスタンプの桁数が1,000倍ほど大きいのはなぜ? おそらくミリ秒単位になっています。1,000で割れば秒単位の値が得られます。
タイムスタンプにタイムゾーンは反映されていますか? いいえ。Unixタイムスタンプは常にUTCを基準としています。表示される各地の現地時刻は、1つの普遍的な瞬間を別の角度から見たものにすぎません。
「2038年問題」とは何ですか? タイムスタンプを32ビット整数で保存しているシステムは、2038年1月19日にオーバーフロー(桁あふれ)を起こします。現代の64ビットシステムであれば、この問題は完全に回避できます。