コンテンツにスキップ

Unixタイムスタンプから日付への変換ツール:12/24時間形式のサポート

Unixタイムスタンプ(1970年1月1日午前0時からの経過秒数)をカレンダーの日付と時刻に変換します。入力値が秒・ミリ秒・マイクロ秒のどの単位かを自動的に判別し、結果を12時間制または24時間制で表示できるため、ログ解析やAPI開発、データベース調査の場面で役立ちます。

Unixタイムスタンプ変換

Unix タイムスタンプは、1970年1月1日(UTC)からの秒数です

時間形式

変換された日付と時刻

検出:標準Unixタイムスタンプ(10桁)
変換された日付と時刻
Tuesday, September 1, 2026 at 11:35:25

Unix タイムスタンプとは?

Unix タイムスタンプは、1970年1月1日(UTC/GMT)の午前0時から経過した秒数です。うるう秒は考慮されていません。Unix システムやプログラミング言語で日付と時刻の計算に広く使用されています。

ローディング計算機...
📚

ドキュメンテーション

Unixタイムスタンプから日付への変換ツール

Unixタイムスタンプは、特定の時点を表す数値です。1970年1月1日のUTC午前零時、つまりUnixエポックと呼ばれる瞬間から経過した秒数を、整数で数えたものです。このツールは、Unixタイムスタンプをカレンダーの日付と時刻に変換し、24時間制または12時間制で表示します。結果は、変換ツールを実行している端末に設定されたタイムゾーンで表示されます。

Unixタイムスタンプを日付に変換する方法

基本的な式は簡単です。

日付 = Unixエポック(1970-01-01、UTC 00:00:00)+ タイムスタンプ(秒単位)

秒数の生の数値を日付に変換するには、その秒数を1970年1月1日に加えます。次に、結果を年、月、日、時、分、秒に分ける必要があります。この分割が難しいのは、うるう年(2月に1日を加える)や、月ごとに日数が異なることを考慮しなければならないためです。ほとんどのプログラミング言語にはこれを自動的に行う組み込みの日付関数があるため、誰も手順を追って計算する必要はありません。

計算例

タイムスタンプ1609459200を例にします。

  1. 1日の秒数で割ります:1,609,459,200 ÷ 86,400 = 18,628日。
  2. うるう年を考慮しながら、1970年1月1日から18,628日先まで数えます。
  3. 数えた日付は2021年1月1日になります。

たとえば、1609459200はUTCの金曜日、2021年1月1日、00:00:00に変換されます。曜日の金曜日は、同じ日数の計算から求められます。別のタイムゾーンに設定された端末では、変換ツールは同じ瞬間を現地時間で表示します。たとえばニューヨーク(UTC−5)では、木曜日の2020年12月31日、19:00:00になります。

タイムスタンプは負の値になることもあり、1970年より前の日付を表します。たとえば、-86400はエポックのちょうど1日前、つまりUTCで1969年12月31日、00:00:00です。

タイムスタンプの精度:秒、ミリ秒、マイクロ秒

すべてのシステムが時間を秒単位で計測するわけではありません。この変換ツールはタイムスタンプの桁数を調べ、その精度を推定します。

桁数精度例
10秒1609459200
13ミリ秒1609459200000
16マイクロ秒1609459200000000

負のタイムスタンプには、マイナス記号の分として桁が一つ増えるため、-1609459200(11桁)も秒として読み取られます。これ以外の桁数は、すべて通常の秒として扱われます。ミリ秒とマイクロ秒の値は、上の秒の式を適用する前に、1,000または1,000,000で割られます。

12時間制と24時間制

変換ツールでは、時刻を二通りの方法で表示できます。

  • 24時間制は、午前・午後の表示なしで、時を0から23まで数えます。アメリカでは、ミリタリータイムと呼ばれることがよくあります。午後の3:00は15:00と書きます。
  • 12時間制は、時を1から12まで数え、真夜中から正午までは午前、正午から真夜中までは午後を付けます。24時間制の15:00は、15:00になります。

24時間制は、ヨーロッパ、ラテンアメリカ、アジアの大部分で標準的に使われ、世界中の科学、軍事、医療の分野でも使われています。12時間制は、米国、カナダ、その他いくつかの英語圏の国で日常的によく使われています。

対応する日付の範囲

この変換ツールは、ミリ秒またはマイクロ秒を秒に変換した後、-62135596800から253402300799までの任意のタイムスタンプを受け付けます。これは、1年の1月1日から9999年12月31日(UTC)までのすべての日付に相当します。この範囲外のタイムスタンプは、大きすぎるか小さすぎて変換できないものとして拒否されます。

2038年問題

古いコンピューターシステムの多くは、Unixタイムスタンプを32ビットの符号付き整数として保存しており、数えられるのは2,147,483,647までです。エポックからこの秒数が経過した時点は、UTCの2038年1月19日、03:14:07にあたります。その瞬間を過ぎると、更新されていない32ビットのシステムは負の数に戻ってしまい、日付を2038年ではなく1901年と読み取ります。これは2038年問題として知られています。すべてのシステムに影響するわけではありません。タイムスタンプを64ビットの数値として、あるいはJavaScriptのように通常の数値として保存する最近のソフトウェアは、オーバーフローなしに2038年から数千年先の日付まで表現できます。JavaScriptの日付は、エポックの前後それぞれ最大100,000,000日を保持でき、これは275760年に達します。

Unixタイムスタンプの一般的な用途

Unixタイムスタンプは、コンパクトで比較や並べ替えが簡単なため、コンピューティングのさまざまな場面で使われています。

  • データベースの行では、レコードが作成された時刻や最後に変更された時刻を記録するために使われます。
  • Webサーバーでは、キャッシュや有効期限を制御するためにHTTPヘッダーやCookieで使われます。
  • ログファイルでは、各イベントにタイムスタンプを付けることで、記録を時系列に並べられます。
  • Gitなどのバージョン管理システムでは、コミット時刻をこの方法で記録します。
  • Web APIでは、データが生成された時刻や最後に更新された時刻を示すために使われます。

よくある質問

Unixエポックとは何ですか? Unixエポックは、1970年1月1日のUTC午前0時です。すべてのUnixタイムスタンプが数え始める基準点です。

Unixタイムスタンプにはうるう秒が含まれますか? いいえ。Unix時間は一日をちょうど86,400秒として数え、UTCに時々加えられるうるう秒を無視するため、天文時とはわずかにずれていきます。

Unixタイムスタンプは負の値になれますか? はい。負の値は1970年1月1日より前の日付を表します。

タイムスタンプが10桁ではなく13桁なのはなぜですか? 13桁のタイムスタンプは、秒ではなくミリ秒で測定されています。JavaScriptのDate.now()はエポックからの経過ミリ秒数を返し、多くのWeb APIも同様です。そのため、Web開発では13桁の値がよく見られます。

Unixタイムスタンプは、どのタイムゾーンでも同じですか? 数値そのものは、どのタイムゾーンにも結び付いておらず、常にUTCのエポックからの秒数を数えています。これを「東部時間の15:00」のような現地の日付と時刻に変換するには、元のタイムスタンプにタイムゾーンのオフセットを適用する必要があります。

この変換ツールで扱える最大の日付は何ですか? UTCの9999年12月31日、23:59:59で、タイムスタンプ253402300799に相当します。

参考文献

  1. The Open Group。The Open Group Base Specifications Issue 8, Chapter 3: Definitions。POSIX definitions: Epoch — エポックは、UTCの1970年1月1日、00:00:00である。
  2. The Open Group。The Open Group Base Specifications Issue 8, Chapter 4: General Concepts。POSIX: Seconds Since the Epoch — すべての日は、ちょうど86,400秒として数えられる。
  3. MDN Web Docs。Date.now()。Date.now() reference — エポックからの経過ミリ秒数を返す。
  4. MDN Web Docs。Date。JavaScript Date reference — Dateはエポックから前後に最大±100,000,000日を保持でき、これは9月13日、275760年に達する。