計算機科学のブログ

国際化を学ぶ Dateオブジェクト、西暦、英国式表記、紀元前、Intl.DateTimeFormatオブジェクト

ハンズオンJavaScript (あんどうやすし(著)、オライリー・ジャパン)の9章(国際化を学ぶ)、9.7(練習問題)の9-1、9-2、9-3の解答を求めてみる。

コード

console.log('9-1');

let date = new Date();

date.setFullYear(37, 11, 15);
console.log(date);

let format = Intl.DateTimeFormat('ja', { era: 'long' }).format(date);
console.log(format);

console.log('9-2');
date = new Date('1966-01-30T00:00:00+09:00');
console.log('そのまま', date);
format = Intl.DateTimeFormat('en-GB').format(date);
console.log('英国式表記', format);

console.log('9-3');
date = new Date();
date.setFullYear(-999);
console.log(date);
let opt = {
    era: 'short',
    year: 'numeric',
};
format = Intl.DateTimeFormat('en', opt).format(date);
console.log(format);

入出力結果(Terminal, Zsh)

% node main.js
9-1
0037-12-15T10:24:26.336Z
西暦37年12月15日
9-2
そのまま 1966-01-29T15:00:00.000Z
英国式表記 30/01/1966
9-3
-000999-01-17T10:24:26.356Z
1000 BC
%