Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【JavaScript】toISOString()でISO規格な時間記述を得る

こんばんは葛の葉です。

さて、JavaScriptのDateオブジェクトにはtoISOString()というメソッドが存在します。このメソッドは、ISO 8601に定められる国際規格で記述された日時の表記を出力できるものとなっています。返却値の型はstringになります。

developer.mozilla.org

const date = new Date("2020/04/01");
console.log(date.toISOString()); // '2020-03-31T15:00:00.000Z'

'2020-03-31T15:00:00.000Z'これがISO 8601規格に則った日時の表記です。最後の文字のZは世界協定時を表し、タイムゾーンのプラスマイナスは0になります。

ja.wikipedia.org

日時の規格になるので、他の言語で使用することも可能です。例えばPythonでは3.7以降のバージョンで使用することが出来ます。ただし、先のZの文字がPythonが気に入らないらしく、ここはタイムゾーンを書いてあげる必要があります。うそみてぇ。

from datetime import datetime

iso_string = '2020-03-31T15:00:00.000Z'
iso_string.replace('Z', '+00:00')
iso_string # '2020-03-31T15:00:00.000+00:00'
date = datetime.fromisoformat(iso_string)
print(date) # 2020-03-31 15:00:00+00:00
print(date.day) # 31
print(date.hour) # 15
print(date.year) # 2020

date変数でいろんなdateクラスのメソッドが使えていることがわかると思います。