チュートリアル

ISO 8601 を Unix タイムスタンプに変換する

ISO 8601 から Unix 秒へ

ISO 8601 の値が一意の Unix タイムスタンプになるのは、Z または数値オフセットを含む場合だけです。2024-01-01T00:00:00Z1704067200 秒です。ISO 8601 コンバーター で確認できます。

JavaScript

Date#getTime() はミリ秒を返します。API が秒を要求する場合だけ 1000 で割ります。

const date = new Date('2024-01-01T00:00:00Z');
if (Number.isNaN(date.getTime())) throw new Error('無効な ISO 8601');
const milliseconds = date.getTime();
const seconds = Math.floor(milliseconds / 1000);

2024-01-01T05:30:00+05:30 は同じ時点を表します。逆方向の変換は JavaScript でタイムスタンプを変換する を参照してください。

Python

オフセットを保持し、正規表現が必要なときは UTC に正規化します。

from datetime import datetime, timezone
instant = datetime.fromisoformat('2024-01-01T05:30:00+05:30').astimezone(timezone.utc)
assert int(instant.timestamp()) == 1_704_067_200

2024-01-01T00:00:00 にはタイムゾーンがなく、一意の時点ではありません。変換前に UTC かローカル時刻かを決めてください。ISO 8601 ガイド で詳しく説明しています。

試してみる

タイムスタンプ変換をテスト

日時の結果

ほかのオプションが必要ですか? ISO 8601 コンバーター