toLocaleString / toLocaleDateString / toLocaleTimeStringメソッド

広告

toLocaleStringメソッドは対象のDateクラスのオブジェクトを文字列に変換した結果を返します。この時、現在のロケールに応じた形式で変換を行った結果を返します。

ロケールに応じたDateクラスのオブジェクトの文字列表現を返します。

パラメータ:
  無し
戻り値:
  Dateクラスのオブジェクトが表す日付/時刻のロケールに応じた文字列表現

toStringメソッドが日付/時刻の文字列表現を返しますが、toLocaleStringメソッドは現在のロケールに応じた文字列表現を返します。つまりJPロケールの場合とUSロケールの場合でtoLocaleStringメソッドが返す文字列表現は異なる場合があります。このメソッドは親クラスのObjectクラスから継承したメソッドです。

表示される日付/時刻はUTCではなく現地時間のタイムゾーンにて表示します。

次の例を見てください。

var d = new Date();
var str = d.toLocaleString();

上記の場合、例えば次のような文字列を取得できます。

2009年8月10日 23:10:37

タイムゾーンをUTCにするにはtoUTCStringメソッドを使い、現在のロケール形式に関係ない文字列を出力するにはtoStringメソッドを使って下さい。

日付部分のみ取り出す

toLocaleDateStringメソッドは対象のDateクラスのオブジェクトの文字列に変換した結果の中で日付部分を返します。この時、現在のロケールに応じた形式で変換を行った結果を返します。

ロケールに応じたDateクラスのオブジェクトの文字列表現の中で日付部分を返
します。

パラメータ:
  無し
戻り値:
  Dateクラスのオブジェクトが表す日付のロケールに応じた文字列表現

Dateクラスのオブジェクトが表す日付/時刻をロケールに応じた文字列に変換した結果の中で日付部分だけを返します。次の例を見てください。

var d = new Date();
var str = d.toLocaleDateString();

上記の場合、例えば次のような文字列を取得できます。

2009年8月10日
時刻部分のみ取り出す

toLocaleTimeStringメソッドは対象のDateクラスのオブジェクトの文字列に変換した結果の中で時刻部分を返します。この時、現在のロケールに応じた形式で変換を行った結果を返します。

ロケールに応じたDateクラスのオブジェクトの文字列表現の中で時刻部分を返
します。

パラメータ:
  無し
戻り値:
  Dateクラスのオブジェクトが表す日付のロケールに応じた文字列表現

Dateクラスのオブジェクトが表す日付/時刻をロケールに応じた文字列に変換した結果の中で時刻部分だけを返します。次の例を見てください。

var d = new Date();
var str = d.toTimeString();

上記の場合、例えば次のような文字列を取得できます。

23:10:37
サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script3_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

var d = new Date();

document.write("<p>");

print("toStringメソッド : ");
print(d.toString());

document.write("</p>");

document.write("<p>");

print("toLocaleStringメソッド : ");
print(d.toLocaleString());
print(d.toLocaleDateString());
print(d.toLocaleTimeString());

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p3-1

これはFireFox3で実行した場合です。同じページをInternet Explorer8を使って開くと次のように表示されます。

p3-2

ロケールに応じた日付/時刻の文字列表現はどちらも同じ結果を返しました。ただし、どのような形式で返すのかは決まっているわけではない点は注意して下さい。

( Written by Tatsuo Ikura )