Unix タイムスタンプ変換
コード例
// 現在のタイムスタンプ取得
new Date(タイムスタンプを日付に変換).toLocaleString()import time
time.time() # 現在のタイムスタンプ取得
time.ctime(1800000000) # タイムスタンプを日付に変換import "time"
time.Now().Unix() // 現在のタイムスタンプ取得
time.Unix(1800000000, 0).String()# 現在のタイムスタンプ取得
date +%s
# タイムスタンプを日付に変換
date -d @1800000000Unixタイムスタンプは、1970年1月1日00:00:00 UTCからの経過秒数です。
無料オンライン Unix タイムスタンプ変換ツール。秒/ミリ秒/マイクロ秒の双方向変換に対応し、タイムスタンプの単位を自動認識、UTCとローカルタイムゾーンをワンクリックで切り替え、各言語のコード例を内蔵。開いてすぐに使え、開発デバッグやログ調査に最適です。
関連おすすめ
Unix タイムスタンプとは何ですか?
Unix タイムスタンプ(Unix Timestamp)は、Epoch Time、POSIX Timeとも呼ばれ、時刻を数値で表現する方式です。協定世界時(UTC)1970年1月1日 00:00:00 からある時点までの経過秒数(うるう秒は計算しない)を表します。起点である 1970-01-01 00:00:00 UTC は「Unix エポック」(Unix Epoch)と呼ばれ、このときのタイムスタンプは0です。
タイムスタンプの最大の利点はタイムゾーンに依存しないことです。同じ瞬間であれば世界中のどこで生成しても同じ数値になり、タイムゾーン変換の問題が発生しません。そのため、データベースのレコード作成/更新時刻、分散システムのログトレース(Trace/Spanの時刻)、APIの時刻パラメータ、JWT Tokenの有効期限、キャッシュのTTL(有効期限)、ファイルシステムの更新時刻などに広く使われています。
プログラミング言語やシステムによってタイムスタンプの精度の扱いが異なります。C/Unix/Pythonはデフォルトで秒単位(10桁)、JavaScript/Javaはミリ秒単位(13桁)を使用し、一部の高精度システム(金融取引、科学計算など)はマイクロ秒単位(16桁)やナノ秒単位(19桁)を使用します。このツールは最も一般的な秒、ミリ秒、マイクロ秒の3つの精度をカバーしています。
ユースケース
- 開発デバッグ時にログ内のタイムスタンプを可読日時に変換し、問題発生時刻を迅速に特定
- API連携時にリクエスト/レスポンス内のタイムスタンプフィールドを照合し、時刻が正しく伝達されているか確認
- データベースクエリ時に業務時刻をタイムスタンプに変換し、SQLの時間範囲条件に使用
- サーバー運用時にUTCタイムスタンプとローカル時刻を比較し、タイムゾーンをまたぐデプロイの時刻関連問題を調査
- スクリプト作成時に各言語のタイムスタンプ取得コードスニペットをコピーしてすぐに使え、ドキュメントを参照する必要なし
- 過去の日付(1970年以前)または未来の日付をタイムスタンプに変換し、境界シナリオのテストに使用
使い方
- ページ上部にリアルタイムで変動する現在のUnixタイムスタンプが表示され、クリックで直接コピー可能
- タイムスタンプを日付に変換する場合:「タイムスタンプ→日付」タブにタイムスタンプを入力すると、ツールが単位(秒/ミリ秒/マイクロ秒)を自動認識
- UTCまたはローカルタイムゾーンを選択すると変換結果が即座に表示され、コピーボタンで日付文字列をコピー可能
- 日付をタイムスタンプに変換する場合:「日付→タイムスタンプ」タブに切り替え、年/月/日/時/分/秒の入力ボックスに対象時刻を入力
- タイムゾーンを選択すると秒単位タイムスタンプが即座に表示され、ワンクリックでコピーしてコードやクエリに使用可能
特徴
- 単位自動認識:タイムスタンプを入力すると秒/ミリ秒/マイクロ秒を自動判定、手動選択不要で貼り付けるだけ
- 3段階精度対応:秒(10桁)、ミリ秒(13桁)、マイクロ秒(16桁)を完全カバー、さまざまなシステムと言語のニーズに対応
- UTC/ローカルタイムゾーン切り替え:サーバーログはUTC、業務時刻はローカル、ワンクリックで切り替えて比較調査
- フィールドごとの日付入力:年/月/日/時/分/秒の独立した入力ボックスで日付からタイムスタンプへの変換に対応、日付形式を記憶する必要なし
- リアルタイムタイムスタンプ表示:ページ上部で現在の秒単位タイムスタンプとUTC日付をリアルタイムで表示、ワンクリックコピー
- 多言語コードスニペット:JavaScript/Python/Go/Bashのタイムスタンプ取得・変換コードを内蔵、ワンクリックコピー
- 負のタイムスタンプ対応:1920年から2100年までの任意の日付を変換可能、過去と未来の時刻をカバー
- 純フロントエンド計算:すべての変換はブラウザローカルで完了し、タイムスタンプがサーバーに送信されず安全
コード例
JavaScript でのタイムスタンプ取得と変換
javascriptブラウザとNode.jsで現在の秒単位/ミリ秒単位タイムスタンプを取得し、タイムスタンプをローカルの可読時刻に変換するよく使われる方法です。
// 現在の秒単位タイムスタンプを取得
const tsSec = Math.floor(Date.now() / 1000);
console.log(tsSec); // 例 1700000000
// 現在のミリ秒単位タイムスタンプを取得
const tsMs = Date.now();
console.log(tsMs); // 例 1700000000000
// 秒単位タイムスタンプをローカル可読時刻に変換
const date = new Date(tsSec * 1000);
console.log(date.toLocaleString('ja-JP'));
// "2023/11/15 7:13:20"
// ミリ秒単位タイムスタンプをISO形式に変換
console.log(new Date(tsMs).toISOString());
// "2023-11-14T22:13:20.000Z"Python でのタイムスタンプ処理
pythonPython標準ライブラリのtimeモジュールとdatetimeモジュールを使用してタイムスタンプを取得・変換し、タイムゾーン変換を処理します。
import time
from datetime import datetime, timezone
# 現在の秒単位タイムスタンプを取得
ts = int(time.time())
print(ts) # 1700000000
# タイムスタンプをローカル時刻の文字列に変換
print(time.ctime(ts))
# 'Wed Nov 15 07:13:20 2023'
# タイムスタンプをフォーマットされた時刻に変換
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(ts)))
# '2023-11-15 07:13:20'
# タイムスタンプをUTC時刻に変換
print(datetime.fromtimestamp(ts, tz=timezone.utc))
# 2023-11-14 22:13:20+00:00Linux/macOS コマンドラインでのタイムスタンプ操作
bashシェルで現在のタイムスタンプを取得し変換するよく使われるコマンド。LinuxとmacOSのdateコマンドのパラメータの違いに注意してください。
# 現在の秒単位タイムスタンプを取得(Linux/macOS共通) date +%s # タイムスタンプを日付に変換(Linux GNU date) date -d @1700000000 # "Wed Nov 15 07:13:20 JST 2023" # タイムスタンプを日付に変換(macOS BSD date) date -r 1700000000 # タイムスタンプをUTC日付に変換(Linux) date -u -d @1700000000 # "Tue Nov 14 22:13:20 UTC 2023" # 指定したフォーマットで出力 date -d @1700000000 '+%Y-%m-%d %H:%M:%S'
よくある質問
Unix タイムスタンプとは何ですか?
Unix タイムスタンプ(Unix Timestamp、別名 Epoch Time、POSIX Time)は、協定世界時(UTC)1970年1月1日00:00:00からある時点までの経過秒数(うるう秒は考慮しない)です。例えば 1700000000 は 2023-11-14 22:13:20 UTC に対応します。タイムゾーンの影響を受けず、世界中のどこで生成しても同じ瞬間のタイムスタンプは同じ値になるため、システム間の時刻記録、ログトレース、APIパラメータ、データベース保存に広く使われています。
秒単位、ミリ秒単位、マイクロ秒単位のタイムスタンプはどう見分けますか?
桁数で見分けます:10桁は秒単位(秒までの精度、例:1700000000)、13桁はミリ秒単位(1/1000秒までの精度、例:1700000000000)、16桁はマイクロ秒単位(1/1000000秒までの精度、例:1700000000000000)です。このツールは入力されたタイムスタンプの桁数を自動認識します。手動で単位を選択する必要はなく、入力後すぐに自動判定して変換します。前後にスペースがある場合も自動的にトリムして正しく認識します。
ログのタイムスタンプがローカル時刻と8時間ずれているのはなぜですか?
Unix タイムスタンプ自体はUTCタイムゾーンですが、日本はUTC+9(中国はUTC+8)のタイムゾーンを使用しているためです。UTCタイムスタンプをローカルタイムゾーンで直接解析すると時差が発生します。このツールはUTCとローカルタイムゾーンの切り替えオプションを提供しています。サーバーログ(通常UTC)を調査するときはUTC、ローカルの業務時刻を見るときはローカルタイムゾーンを選択し、ワンクリックで切り替えて比較できます。
JavaScript でタイムスタンプを取得・変換するには?
現在の秒単位タイムスタンプを取得するには `Math.floor(Date.now() / 1000)`、ミリ秒単位は `Date.now()` を使います。タイムスタンプを可読時刻に変換するには `new Date(ts * 1000).toLocaleString()` を使います(秒単位は1000倍する必要があり、ミリ秒単位はそのまま渡せます)。ツールページの下部にはJavaScript、Python、Go、Bashなどのよく使われる言語のコードスニペットが組み込まれており、コピーしてすぐに使えます。
タイムスタンプは負の値になりますか?何を表しますか?
はい、なります。負のタイムスタンプは1970年1月1日より前の時刻を表します。例えば -1 は 1969-12-31 23:59:59 UTC に対応します。このツールは負のタイムスタンプの入力に対応しており、1920年から2100年までの範囲を変換できるため、過去の日付と未来の日付の両方の変換ニーズに対応します。
2038年問題とは何ですか?使用に影響はありますか?
2038年問題(Year 2038 Problem)は、秒単位タイムスタンプを32ビット符号付き整数で保存しているシステムが、2038年1月19日03:14:07 UTC以降にオーバーフローして時刻が負の値になり、システムエラーを引き起こす問題です。現代のシステムは64ビット整数(2920億年後まで表現可能)を一般的に使用しており、JavaScriptは64ビット浮動小数点でタイムスタンプを保存しています(ミリ秒精度で285616年まで安全に表現可能)。このツールはブラウザ内で動作するため、2038年問題の影響を受けません。
なぜオンライン変換はコマンドラインより便利ですか?
コマンドライン(Linuxのdateコマンドなど)はパラメータ形式を覚える必要があり、プラットフォーム間でパラメータが一致しません(macOSのdateとLinuxのdateはパラメータが大きく異なります)。このツールは開いてすぐに使え、単位を自動認識し、ビジュアルな日付入力ボックス(年/月/日/時/分/秒をフィールドごとに入力でき、日付形式を記憶する必要がない)を提供し、タイムゾーンのワンクリック切り替えに対応し、各言語のコード例も組み込まれています。ブラウザ内で変換が完了するため、ターミナルに切り替える必要がありません。
用語集
- Unix タイムスタンプ
- UTC 1970年1月1日00:00:00からの経過秒数。10桁の数字で、タイムゾーンに依存せず世界共通です。
- Epoch Time
- Unixタイムスタンプの別名。Unixエポック(1970-01-01 UTC)から起算した時刻を指します。
- 秒単位タイムスタンプ
- 秒までの精度のタイムスタンプ。10桁の数字(例:1700000000)で、Unix/Python/Cなどの言語のデフォルト精度です。
- ミリ秒単位タイムスタンプ
- 1/1000秒までの精度のタイムスタンプ。13桁の数字(例:1700000000000)で、JavaScript/Javaのデフォルト精度です。
- マイクロ秒単位タイムスタンプ
- 1/1000000秒までの精度のタイムスタンプ。16桁の数字(例:1700000000000000)で、高精度システムで使用されます。
- UTC
- 協定世界時(Coordinated Universal Time)。世界の時刻標準であり、タイムゾーン計算の基準です。グリニッジ標準時(GMT)とほぼ一致します。
- タイムゾーンオフセット
- ローカル時刻とUTCの差。例えば日本標準時はUTC+9(UTCより9時間進んでいる)、米国東部はUTC-5(標準時)です。
- ISO 8601
- 国際標準化機構の日時表現形式。例:2024-01-15T08:30:00+09:00。APIパラメータの標準フォーマットです。
- 2038年問題
- 32ビット符号付き整数で保存された秒単位タイムスタンプが2038年1月19日にオーバーフローする問題。64ビットシステムとJavaScriptは影響を受けません。
よく使われる時間単位の換算表
| 時間単位 | 秒数 | 使用例 |
|---|---|---|
| 1分 | 60 | 短時間キャッシュ、APIタイムアウト |
| 1時間 | 3,600 | Tokenの短期有効期限、セッションタイムアウト |
| 1日 | 86,400 | 日次統計、日報データ |
| 1週間 | 604,800 | 週報周期、Cookie有効期限 |
| 1ヶ月(30.44日) | 2,629,743 | 月次統計、サブスクリプション課金周期 |
| 1年(365.24日) | 31,556,926 | 年次データ、JWT長期Token |
プログラミング言語別タイムスタンプ取得と変換
| 言語 | 現在のタイムスタンプ取得(秒) | タイムスタンプを可読時刻に変換 |
|---|---|---|
| JavaScript | Math.floor(Date.now()/1000) | new Date(ts*1000).toLocaleString() |
| Python | import time; int(time.time()) | import time; time.ctime(ts) |
| Java | System.currentTimeMillis()/1000 | new Date(ts*1000L).toString() |
| Go | time.Now().Unix() | time.Unix(ts, 0).String() |
| PHP | time() | date('Y-m-d H:i:s', ts) |
| MySQL | SELECT UNIX_TIMESTAMP() | SELECT FROM_UNIXTIME(ts) |
| Bash (Linux) | date +%s | date -d @ts |
| Bash (macOS) | date +%s | date -r ts |
Authoritative References
- WikipediaUnix 時間 - Wikipedia
- IETFRFC 3339 - 日付と時刻のフォーマット
- ISOISO 8601 日時標準
- 色覚シミュレーター
- カラーコンバーター
- .htaccess→Nginx変換ツール
- SQL 変換ツール
- Cookieパーサー
- Cron式ジェネレーター
- Cron式バリデーター
- CSSフォーマッター
- CSS圧縮
- CSV→Excel変換
- 通貨変換
- 差分チェッカー
- ファビコンジェネレーター
- XMLフォーマッター
- 16進数変換ツール
- HTMLフォーマッター
- HTML圧縮
- HTML→Markdown変換
- MarkdownからHTML変換
- JavaScript フォーマッター
- JS圧縮
- JSXフォーマッター
- JSX 圧縮
- キーワードのクラスタリング
- Lorem Ipsum ジェネレーター
- Markdown テーブルジェネレーター
- Meta Tag ジェネレーター
- パスワード生成器
- パスワード強度チェッカー
- QRコード・バーコードジェネレーター
- 正規表現テスター
- Slugジェネレーター
- SQLビルダー
- SQL フォーマッター
- 文字数カウント
- 時間ツール
- TSフォーマッター
- TS圧縮
- TSXフォーマッター
- TSX圧縮
- Unix タイムスタンプ変換
- UUID ジェネレーター
- YAMLフォーマッター
- 大文字と小文字の変換