チュートリアル
ISO 8601 を Unix タイムスタンプに変換する
ISO 8601 から Unix 秒へ
ISO 8601 の値が一意の Unix タイムスタンプになるのは、Z または数値オフセットを含む場合だけです。2024-01-01T00:00:00Z は 1704067200 秒です。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 コンバーター