JavaScript

Intl.DateTimeFormat.prototype.formatToParts() メソッド


編集:2023.01.09 by T.A.

[Edge]。→

Intl.DateTimeFormat により指定日時を書式化した各部分データ オブジェクトの配列で返します。

構文
Intl.DateTimeFormat.formatToParts([date])
Intl.DateTimeFormat Intl.DateTimeFormat
date 省略可。日時を表す Date または¶数値(協定世界時(UTC)での 1970年1月1日 00:00:00から経過のミリ秒)。
戻り値

以下のプロパティと値のオブジェクトを持つ配列。

type
以下の内容の文字列。value を意味する項目名。
day
「日」。value: 「17」など。
dayPeriod
日付期間。value: 「AM」「PM」「in the morning」「noon」など。
era
「時代」。value: 「R」「令和」「BC」「AD」など。
fractionalSecond
「ミリ秒」。value: 「0」「00」「000」など。
hour
「時」。value: 「3」「03」など。
literal
日付や時刻の区切り。value: 「年」「:」「/」「,」「o'clock」「de」など。
minute
「分」。value: 「00」など。
month
「月」。value: 「12」など。
relatedYear
「年」¶不明。

mdn: カレンダーの表現が year ではなくyearNameである場合、関連する4桁のグレゴリオ暦の年に使用される文字列です。value: 「2019」など。

second
「秒」。value: 「07」「42」など。
timeZoneName
タイムゾーン名。value: 「JST」「UTC」など。
weekday
「曜日」。value: 「M」「Monday」「Montag」など。
year
「年」。value: 「2012」「96」など。
yearName
¶不明。

mdn: 関連するコンテキストで yearName に使用される文字列。value: 「geng-zi」など。

value
type の内容に対応した値。上記を参照。
//●date の指定方法
DA=new Intl.DateTimeFormat('ja-JP', {dateStyle:'long'});  //日本語の日本国、日付。
D=DA.formatToParts('2020-10-05T19:23:30.123');  //日付文字列で指定。
	//エラー発生:Invalid time value
D=DA.formatToParts(0);  //協定世界時(UTC)での 1970年1月1日 00:00:00から経過ミリ秒で指定。
	//=[object]:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
	//0=[object]:[object Object]
	//1=[object]:[object Object]
	//2=[object]:[object Object]
	//3=[object]:[object Object]
	//4=[object]:[object Object]
	//5=[object]:[object Object]
//D[0]=[object]:[object Object]
	//type=[string]:year
	//value=[string]:1970
//D[1]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:年
//D[2]=[object]:[object Object]
	//type=[string]:month
	//value=[string]:1
//D[3]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:月
//D[4]=[object]:[object Object]
	//type=[string]:day
	//value=[string]:1
//D[5]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:日
DA=new Intl.DateTimeFormat('ja-JP', {dateStyle:'long'});  //日本語の日本国、日付。
D=DA.formatToParts(new Date('2020-10-05T19:23:30.123'));  //Dateで指定。
	//=[object]:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
	//0=[object]:[object Object]
	//1=[object]:[object Object]
	//2=[object]:[object Object]
	//3=[object]:[object Object]
	//4=[object]:[object Object]
	//5=[object]:[object Object]
//D[0]=[object]:[object Object]
	//type=[string]:year
	//value=[string]:2020
//D[1]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:年
//D[2]=[object]:[object Object]
	//type=[string]:month
	//value=[string]:10
//D[3]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:月
//D[4]=[object]:[object Object]
	//type=[string]:day
	//value=[string]:5
//D[5]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:日

//●他の指定と結果
DA=new Intl.DateTimeFormat('ja-JP', {timeStyle:'long'});  //時刻
D=DA.formatToParts(new Date('2020-10-05T19:23:30.123'));  //2020年10月5日19時23分30秒123ミリ秒。
	//=[object]:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
	//0=[object]:[object Object]
	//1=[object]:[object Object]
	//2=[object]:[object Object]
	//3=[object]:[object Object]
	//4=[object]:[object Object]
	//5=[object]:[object Object]
	//6=[object]:[object Object]
//D[0]=[object]:[object Object]
	//type=[string]:hour
	//value=[string]:19
//D[1]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]::
//D[2]=[object]:[object Object]
	//type=[string]:minute
	//value=[string]:23
//D[3]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]::
//D[4]=[object]:[object Object]
	//type=[string]:second
	//value=[string]:30
//D[5]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]: 。半角スペース
//D[6]=[object]:[object Object]
	//type=[string]:timeZoneName
	//value=[string]:JST

DA=new Intl.DateTimeFormat('ja-JP', {fractionalSecondDigits:2});  //「ミリ秒」2桁。
D=DA.formatToParts(new Date('2020-10-05T19:23:30.123'));  //=[object]:[object Object]
	//0=[object]:[object Object]
//D[0]=[object]:[object Object]
	//type=[string]:fractionalSecond
	//value=[string]:12

DA=new Intl.DateTimeFormat('ja-JP-u-ca-japanese');  //日本語の日本国のカレンダー日本元号。
D=DA.formatToParts(new Date('2020-10-05T19:23:30.123'));
	//=[object]:[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
	//0=[object]:[object Object]
	//1=[object]:[object Object]
	//2=[object]:[object Object]
	//3=[object]:[object Object]
	//4=[object]:[object Object]
	//5=[object]:[object Object]
D[0]=[object]:[object Object]
	//type=[string]:era
	//value=[string]:R
D[1]=[object]:[object Object]
	//type=[string]:year
	//value=[string]:2
D[2]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:/
D[3]=[object]:[object Object]
	//type=[string]:month
	//value=[string]:10
D[4]=[object]:[object Object]
	//type=[string]:literal
	//value=[string]:/
D[5]=[object]:[object Object]
	//type=[string]:day
	//value=[string]:5

Intl.DateTimeFormat() コンストラクターformat()


テスト