JavaScript の Date オブジェクトの文字列表示
toString() Date オブジェクトの文字列表示
Date オブジェクトの toString() メソッドを使うと、Date オブジェクトが保持している時刻をタイムゾーン付きのローカル時間で表示します。
let d = new Date(2020, 2, 1)
console.log(d.toString())
// Sun Mar 01 2020 00:00:00 GMT-0800 (Pacific Standard Time)
toDateString() Date オブジェクトの日付表示
Date オブジェクトの toDateString() メソッドを使うと、Date オブジェクトが保持している日付をローカル時間で表示します。
let d = new Date(2020, 2, 1)
console.log(d.toDateString())
// Sun Mar 01 2020
toTimeString() Date オブジェクトの時間表示
Date オブジェクトの toTimeString() メソッドを使うと、Date オブジェクトが保持している時刻の日付を除いた時間部分をタイムゾーン付きのローカル時間で表示します。
let d = new Date(2020, 2, 1, 10, 15, 30)
console.log(d.toTimeString())
// 10:15:30 GMT-0800 (Pacific Standard Time)
toISOString() Date オブジェクトの ISO 時間表示
Date オブジェクトの toISOString() メソッドを使うと、Date オブジェクトが保持している時間を ISO 時刻 (ISO 8601) で表示します。
let d = new Date(2020, 2, 1, 10, 15, 30)
console.log(d.toISOString())
// 2020-03-01T18:15:30.000Z
toUTCString() UTC タイムゾーンの時刻表示
Date オブジェクトの toUTCString() メソッドを使うと、 Date オブジェクトが表す時刻の標準時を次のフォーマットで返します。
Www, dd Mmm yyyy hh:mm:ss GMT
これは SMTP プロトコルなどのタイムスタンプとして見られる標準的な形式です。(RFC 2821)
let d = new Date(2020, 2, 1, 10, 15, 30)
console.log(d.toUTCString())
// Sun, 01 Mar 2020 18:15:30 GMT
toJSON() JSON で使用できる時刻文字列
Date オブジェクトの toJSON() メソッドを使うと、 JavaScript のオブジェクトリテラルで使用できる日時の文字列を返します。
let d = new Date(2020, 2, 1, 10, 15, 30)
console.log(d.toJSON())
// 2020-03-01T18:15:30.000Z
JSON の日時のフォーマットは ISO 時刻と同じになります。
toLocaleString() ロケールに応じた日時文字列
Date オブジェクトの toLocaleString() メソッドを使うと、Date オブジェクトが保持する時刻をロケールとオプションに応じた形式に変換して表示します。
Node.js でロケールに対応するには full-icu パッケージをインストールします。
npm i full-icu
その上でスクリプト実行時に、 --icu-data-dir=node_modules/full-icu を指定してスクリプトを実行します。 package.json で start スクリプトを利用している場合は次のように書いておきます。
"scripts": {
"start": "node --icu-data-dir=node_modules/full-icu index.js"
},
第二引数に渡すオプションによって、結果となる文字列が変わります。オプションの種類は次のサンプルコードのコメントで記載しています。
let d = new Date(2020, 2, 1, 10, 15, 30)
const options = {
dateStyle: 'full', // full, long, medium, short
timeStyle: 'full', // full, long, medium, short
// localeMatcher: 'lookup', // 'best fit', 'lookup'
// formatMatcher: 'basic', // 'basic', 'best fit'
// weekday: 'long', // long, short, narrow
// year: 'numeric', // 2-digit, numeric
// month: 'long', // 2-digit, long, narrow, numeric, short
// day: 'numeric', // 2-digit, long, numeric
// hour: '2-digit', // 2-digit, numeric
// minute: '2-digit', // 2-digit, numeric
// second: '2-digit', // 2-digit, numeric
// hour12: true, // true / false
// hourCycle: 'h12', // h11, h12, h23, h24
// timeZone: 'UTC',
// timeZoneName: 'short' // short, long
}
console.log(d.toLocaleString('ja-JP', options))
// 2020年3月1日日曜日 10時15分30秒 アメリカ太平洋標準時
console.log(d.toLocaleString('en-US', options))
// Sunday, March 1, 2020 at 10:15:30 AM Pacific Standard Time
toLocaleDateString() ロケールに応じた日付文字列
Date オブジェクトの toLocaleDateString() メソッドを使うと、Date オブジェクトが保持する時刻をロケールとオプションに応じた形式に変換して表示します。
第二引数のオプションを省略した場合、指定したロケールに対するデフォルトの日付フォーマットで文字列を返します。
let d = new Date(2020, 2, 1, 10, 15, 30)
const options = {
dateStyle: 'full', // full, long, medium, short
}
console.log(d.toLocaleDateString('ja-JP', options))
// 2020年3月1日日曜日
console.log(d.toLocaleDateString('en-US', options))
// Sunday, March 1, 2020
toLocaleTimeString() ロケールに応じた時刻文字列
Date オブジェクトの toLocaleTimeString() メソッドを使うと、Date オブジェクトが保持する時刻をロケールとオプションに応じた形式に変換して表示します。
第二引数のオプションを省略した場合、指定したロケールに対するデフォルトの時刻フォーマットで文字列を返します。
let d = new Date(2020, 2, 1, 10, 15, 30)
const options = {
timeStyle: 'full', // full, long, medium, short
}
console.log(d.toLocaleTimeString('ja-JP', options))
// 10時15分30秒 アメリカ太平洋標準時
console.log(d.toLocaleTimeString('en-US', options))
// 10:15:30 AM Pacific Standard Time