🕐
← ガイド一覧に戻る

Unix タイムスタンプを人間が読める日付に変換する方法

· タグ: unix-timestamp, conversion, date-conversion, timezone, epoch-converter

Unix タイムスタンプを変換する理由

Unix タイムスタンプは機械にとって理想的です — 単一の整数はコンパクトで、曖昧さがなく、並べ替えが簡単です。しかし人間にとって、1785292800 はカレンダーの日付と時刻に変換されるまで何の意味もありません。ログファイルをデバッグする場合でも、データベースレコードを分析する場合でも、API レスポンスを読む場合でも、タイムスタンプをすばやく変換する方法を知ることは必須のスキルです。

方法 1: 当社のオンライン Unix タイムスタンプ変換ツールを使用する

最速で最も信頼できる方法は、専用の変換ツールを使用することです。

当社の Unix タイムスタンプ変換ツール は、秒とミリ秒の両方のタイムスタンプを受け付け、解像度を自動検出し、複数のタイムゾーンで結果を同時に表示します。逆方向にも使用できます — 人間が読める日付を入力すると、対応する Unix タイムスタンプが得られます。

このアプローチは、コマンドラインに触れずに手早く一度きりの変換が必要な場合に最適です。

方法 2: Linux コマンドラインを使用する(date コマンド)

Linux または macOS のターミナルにアクセスできる場合、date コマンドが最良の相棒です。

タイムスタンプを人間が読める日付に変換する

# On GNU Linux (most distributions)
date -d @1785292800

# Specify a custom format
date -d @1785292800 +"%Y-%m-%d %H:%M:%S"
# Output: 2026-07-19 00:00:00

# With timezone
TZ="America/New_York" date -d @1785292800
# Output: Sun Jul 19 00:00:00 EDT 2026

macOS(BSD date)では、構文が少し異なります:

# On macOS
date -r 1785292800

# With custom format
date -r 1785292800 +"%Y-%m-%d %H:%M:%S"

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

# On GNU Linux
date -d "2026-07-19 00:00:00" +%s

# On macOS
date -j -f "%Y-%m-%d %H:%M:%S" "2026-07-19 00:00:00" +%s

方法 3: 手動計算

これを手で行う必要はほとんどありませんが、計算を理解することでシステムの仕組みを解明できます。

計算式

seconds = (year - 1970) × 31536000 + (month offset) × 86400 + day × 86400 + hours × 3600 + minutes × 60 + seconds

厄介なのはうるう年を考慮することです。ある年は、4 で割り切れる場合はうるう年ですが、100 で割り切れて 400 で割り切れない世紀の年は例外です。

すばやい暗算の近似

  • 86,400 秒 = 1 日
  • 604,800 秒 = 1 週間
  • 約 31,536,000 秒 = 1 平年
  • 約 31,622,400 秒 = 1 うるう年

大まかな見積もりには、timestamp / 86400 を計算してエポックからの日数を求め、それらの日数を 1970 年 1 月 1 日に加算できます。

方法 4: プログラミング言語を使用する

主要なプログラミング言語にはすべて、タイムスタンプ変換用の組み込み関数があります。最も一般的なものを紹介します:

JavaScript(ブラウザまたは Node.js)

// Timestamp to date (JavaScript uses milliseconds)
const timestamp = 1785292800;
const date = new Date(timestamp * 1000);
console.log(date.toISOString());
// Output: 2026-07-19T00:00:00.000Z

// Date to timestamp
const ts = Math.floor(new Date("2026-07-19").getTime() / 1000);
console.log(ts);
// Output: 1785292800

Python

from datetime import datetime

# Timestamp to date
dt = datetime.utcfromtimestamp(1785292800)
print(dt.isoformat())
# Output: 2026-07-19T00:00:00

# Timezone-aware (Python 3.9+)
from zoneinfo import ZoneInfo
dt_tz = datetime.fromtimestamp(1785292800, tz=ZoneInfo("America/New_York"))
print(dt_tz.isoformat())
# Output: 2026-07-19T00:00:00-04:00

# Date to timestamp
import time
ts = time.mktime(datetime(2026, 7, 19).timetuple())
print(ts)

PHP

<?php
// Timestamp to date
echo date("Y-m-d H:i:s", 1785292800);
// Output: 2026-07-19 00:00:00

// Date to timestamp
echo strtotime("2026-07-19 00:00:00");
// Output: 1785292800

方法 5: 表計算ソフトウェアを使用する

Google Sheets

A1 にタイムスタンプが含まれている場合、=DATE(1970,1,1) + A1 / 86400 という数式を使用します。結果のセルを日付として書式設定します。

Microsoft Excel

=DATE(1970,1,1) + A1 / 86400

Windows の Excel では、以下が必要な場合があります:

=(A1 / 86400) + DATE(1970,1,1)

注意すべきエッジケース

秒とミリ秒

これは最も一般的な間違いです。秒を期待する関数にミリ秒の値(例: 1785292800000)を渡すと、約 56,000 年先の日付になります。

検出方法:

  • 数値が 10 桁の場合、おそらく秒です
  • 数値が 13 桁の場合、おそらくミリ秒です
  • 一部のシステムではマイクロ秒(16 桁)またはナノ秒(19 桁)も使用されます

負のタイムスタンプ(1970 年より前の日付)

Unix タイムスタンプは、負の数を使用してエポックより前の日付を表せます:

date -d @-126230400
# Output: Tue Dec 31 00:00:00 -1969

すべての変換ツールが負のタイムスタンプを正しく処理できるわけではありません。当社のオンライン変換ツールは正しく処理します。

うるう秒

Unix 時間は設計上、うるう秒を無視します。うるう秒が挿入されている間も、Unix タイムスタンプが :59:60 を表示することは決してありません。これは、タイムスタンプが原子時計から小さく(現在 27 秒)増加し続ける量だけ乖離することを意味します。

まとめ

| 方法 | 最適な用途 | |--------|----------| | オンライン変換ツール(/linux-timestamp) | 手早く一度きりの変換 | | date コマンド | ターミナルユーザーとスクリプト | | 手動計算 | 仕組みの理解 | | プログラミング言語 | 自動化とアプリケーション | | 表計算ソフトウェア | データ分析 |

自動タイムゾーン検出による即時かつ正確な変換には、当社の Unix タイムスタンプ変換ツール を使用してください。