Date
オブジェクトの toXxxString()
系のメソッドを使用すると、保持している日時情報をいろいろな書式の文字列で取得することができます。
大きく分けて、
の文字列に変換するメソッドに分類できます。 下記はそれぞれのメソッドを呼び出したときの結果の例です。
メソッド | 結果の例 | 説明 |
---|---|---|
date.toString() |
Tue Apr 03 2018 21:30:55 GMT+0900 (東京 (標準時)) |
デフォルトの実装で人間が読みやすい形式の文字列に変換 |
date.toISOString() |
2018-04-03T12:30:55.000Z |
日付を ISO 8601 Extended Format に準じた文字列に変換 |
date.toUTCString() |
Tue, 03 Apr 2018 12:30:55 GMT |
日時を UTC タイムゾーンを使用する文字列に変換 |
date.toLocaleString() |
2018-4-3 21:30:55 |
日付を地域の日付書式に従った文字列に変換(現在のロケール) |
date.toLocaleString('en-US') |
4/3/2018, 9:30:55 PM |
日付を地域の日付書式に従った文字列に変換(アメリカ英語) |
メソッド | 結果の例 | 説明 |
---|---|---|
date.toDateString() |
Tue Apr 03 2018 |
「日付」部を、デフォルトの実装で人間が読みやすい形式の文字列に変換 |
date.toLocaleDateString() |
2018-4-3 |
「日付」部を、地域の日付書式に従った文字列に変換(現在のロケール) |
date.toLocaleDateString('en-US') |
4/3/2018 |
「日付」部を、地域の日付書式に従った文字列に変換(アメリカ英語) |
メソッド | 結果の例 | 説明 |
---|---|---|
date.toTimeString() |
21:30:55 GMT+0900 (東京 (標準時)) |
「時刻」部を、デフォルトの実装で人間が読みやすい形式の文字列に変換 |
date.toLocaleTimeString() |
21:30:55 |
「時刻」部を、地域の日付書式に従った文字列に変換(現在のロケール) |
date.toLocaleTimeString('en-US') |
9:30:55 PM |
「時刻」部を、地域の日付書式に従った文字列に変換(アメリカ英語) |
下記は上記の結果を調べるためのサンプルコードです。
var d = new Date(2018, 3, 3, 21, 30, 55);
// 日付+時刻
console.log(d.toString()); // Tue Apr 03 2018 21:30:55 GMT+0900 (日本標準時)
console.log(d.toISOString()); // 2018-04-03T12:30:55.000Z
console.log(d.toUTCString()); // Tue, 03 Apr 2018 12:30:55 GMT
console.log(d.toLocaleString()); // 2018/4/3 21:30:55
console.log(d.toLocaleString('en-US')); // 4/3/2018, 9:30:55 PM
// 日付のみ
console.log(d.toDateString()); // Tue Apr 03 2018
console.log(d.toLocaleDateString()); // 2018/4/3
console.log(d.toLocaleDateString('en-US')); // 4/3/2018
// 時刻のみ
console.log(d.toTimeString()); // 21:30:55 GMT+0900 (日本標準時)
console.log(d.toLocaleTimeString()); // 21:30:55
console.log(d.toLocaleTimeString('en-US')); // 9:30:55 PM
Date クラスの toISOString() メソッドを使用すると、ISO 8601 Extended Format (YYYY-MM-DDTHH:mm:ss.sssZ
) 形式の文字列を取得することができます(得られるのは UTC の日時になります)。
2012-10-04T12:52:00.889Z
上記の文字列を、T
の文字で分割すれば、日付 (YYYY-MM-DD
) 部分だけを簡単に取得できます。
var now = new Date();
var text = now.toISOString().split('T')[0];
alert(text); //=> "2012-10-04"
次の getTimeStr
関数は、Date オブジェクトの年、月、日などの各フィールドの値を利用して、自力で YYYYMMDDThh:mm:ssZ
という形式の日時文字列を作成しています。
時刻などを2ケタ表示に揃えるため、先頭に 0
という文字をひっつけておいてから、末尾の2文字を取り出すという小技を使っています。
function getTimeStr() {
var d = new Date();
var yyyy = d.getUTCFullYear();
var MM = ('0' + (d.getUTCMonth() + 1)).slice(-2);
var dd = ('0' + d.getUTCDate()).slice(-2);
var hh = ('0' + d.getUTCHours()).slice(-2);
var mm = ('0' + d.getUTCMinutes()).slice(-2);
var ss = ('0' + d.getUTCSeconds()).slice(-2);
return yyyy + '-' + MM + '-' + dd + 'T' + hh + ':' + mm + ':' + ss + 'Z';
}
2013-11-04T11:42:29Z