💡
日付表示の検討備忘録
JavaScriptで、日付や時刻の形式を変えたいときの方法をいくつか列挙してみました。
Intl.DateTimeFormat
Intl.DateTimeFormat
は、ライブラリを使わなくてもタイムゾーンの指定が簡単にできる。これが一番なうなやり方っぽい。
const date = new Date(Date.UTC(2023, 5, 16, 3, 23, 16, 738));
const formated = new Intl.DateTimeFormat('ja-JP').format(date)
> '2020/12/20'
一方で、ICU の Date/Time Format Syntaxに適していないようです。
Date/Time Format Syntax
toISOString
これだと、タイムゾーン指定できないよう。
new Date().toISOString();
> '2023-05-16T04:26:15.942Z'
toLocaleDateString と toLocaleTimeString
toLocaleDateString
は、Date
オブジェクトの「日付」部を表す言語に依存した文字列を、toLocaleTimeString
は、日付の時間部分を言語に依存して表現した文字列を返します。
const date = new Date();
const dateString = `${date.toLocaleDateString("ja-JP", { timeZone: "Asia/Tokyo" })} ${date.toLocaleTimeString("ja-JP", { timeZone: "Asia/Tokyo" })}`
> '2023/5/16 13:47:53'
Date.prototype.toLocaleDateString()
Date.prototype.toLocaleTimeString()
参考
標準機能でDateをformatする色々(toLocaleString/Intl.DateTimeFormat/etc)
Discussion