Date.toLocaleFormat() が廃止予定となりました

公開日: | カテゴリー: JavaScript

概要

非標準 Date.prototype.toLocaleFormat メソッドへの対応が廃止予定となり、近い将来 削除される こととなりました。Firefox 55 以降、コンソールにこのメソッドに対する警告が表示されます。

例えば Sugar のように同じ結果を得られる JavaScript ライブラリがあります。また、以下の例が示すように、ECMAScript Internationalization API の一部である標準の toLocaleDateString メソッドを使用することもできます。

// "Tuesday, August 1, 2017" のような形式
(new Date()).toLocaleFormat('%A, %B %e, %Y');
// これは以下のように置き換えられます
(new Date()).toLocaleString('en-US', {
  year: 'numeric',
  month: 'long',
  day: 'numeric',
  weekday: 'long',
});
// "2017-08-01 20:07:13" のような形式
(new Date()).toLocaleFormat('%Y-%m-%d %H:%M:%S');
// これは以下のように置き換えられます
(new Date()).toLocaleString('en-US', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit',
  hour: '2-digit',
  minute: '2-digit',
  second: '2-digit',
  hour12: false,
}).replace(/(\d+)\/(\d+)\/(\d+),\s(.*)/, '$3-$1-$2 $4');

なお、Intl API は Android では Firefox 56 以降で使用可能となっています。一方デスクトップ版 Firefox では Firefox 29 で既に対応が追加されています。

更新: このメソッドは Firefox 58 で削除されました。

参考資料