【JavaScript】toLocaleTimeStringメソッドと「new Date()」

  • このエントリーをはてなブックマークに追加

「new Date()」とtoLocaleTimeStringメソッドについて書いていく。
正確には、「new Date()」は環境に依存し、実行環境によって取得する日時が異なる可能性がある。つまり、「new Date()」が返す値は、ブラウザや実行環境の設定に基づいており、必ずしも日本時間とは限らない。さらに、「new Date()」は、実行環境のタイムゾーン情報を基にして時刻を取得する。しかし、その際にサマータイムの考慮は行われない。つまり、実行環境がサマータイムを正しく反映しているかどうかは保証されない。



toLocaleTimeStringメソッドはタイムゾーンを設定することができる。しかし、実際の挙動は環境依存であり、ブラウザや実行環境によって異なる場合があります。また、このメソッドが正しく動作しない場合もある。さらに、サマータイムがある国の場合、toLocaleTimeStringメソッドがサマータイムに対応しているかどうかは保証されない。サマータイムのルールは変更される可能性があるため、その対応も不確定である。

つまり、new Date().toLocaleTimeString()を使って特定のタイムゾーンの時刻を取得する場合、実行環境やブラウザの挙動、サマータイムのルールなどを考慮する必要がある。また、正確なタイムゾーンや時刻を必要とする場合には、外部のライブラリやAPIを使用することが推奨される。
toLocaleTimeStringは、いまいち使いずらい。


// new Date().toLocaleTimeString()によって新しいDateオブジェクトのインスタンスが作成され、
// そのインスタンスに対してtoLocaleTimeString()メソッドが呼び出される。
// このメソッドは指定したロケールに基づいて現在の時刻を文字列として返す。
// 変数TodayTimeには日本時間の時刻が代入される。
let TodayTime = new Date().toLocaleTimeString('ja-JP', {
  timeZone: "Asia/Tokyo",
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit'
});
console.log("typeof 日本時間:", typeof TodayTime);//typeof 日本時間: string
console.log("日本時間:", TodayTime);// 日本時間: 10:29:51
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*