Intl.DateTimeFormat.prototype.resolvedOptions()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2017å¹´9æ.
resolvedOptions() 㯠Intl.DateTimeFormat ã®ã¡ã½ããã§ããã® DateTimeFormat ãªãã¸ã§ã¯ãã®åæåæã«è¨ç®ããããã±ã¼ã«ãæ¥æãæ¸å¼åãªãã·ã§ã³ãåæ ããããããã£ãæã¤æ°ãããªãã¸ã§ã¯ããè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const region = new Intl.DateTimeFormat("zh-CN", { timeZone: "UTC" });
const options = region.resolvedOptions();
console.log(options.locale);
// äºæ³ãããçµæ: "zh-CN"
console.log(options.calendar);
// äºæ³ãããçµæ: "gregory"
console.log(options.numberingSystem);
// äºæ³ãããçµæ: "latn"
æ§æ
resolvedOptions()
弿°
ãªãã
è¿å¤
ãã® DateTimeFormat ãªãã¸ã§ã¯ãã®åæåä¸ã«è¨ç®ããããªãã·ã§ã³ãåæ ããããããã£ãæã¤ãæ°ãããªãã¸ã§ã¯ãããã®ãªãã¸ã§ã¯ãã¯ã以ä¸ã®ä¸è¦§ã®é åºã§ããããã£ãæã¡ã¾ãã
locale-
å®éã«ä½¿ç¨ããããã±ã¼ã«ã®BCP 47 è¨èªã¿ã°ã§ããããã±ã¼ã«ãã´ã·ã¨ã¼ã·ã§ã³ããã»ã¹ã«ãã£ã¦æ±ºã¾ãã¾ãããªã¯ã¨ã¹ããããå ´åã
ca,hc,nuã® Unicode æ¡å¼µãã¼ã®ã¿ãåºåçµæã«å«ã¾ããå¯è½æ§ãããã¾ãã calendar-
options弿°ã§ãã®ããããã£ã«æå®ãããå¤ãã¾ã㯠Unicode æ¡å¼µãã¼"ca"ã使ç¨ããå¿ è¦ã«å¿ãã¦æ¢å®å¤ãè¨å®ããã¾ããããã¯ãã®ãã±ã¼ã«ã§å¯¾å¿ãã¦ããæ¦ã®ç¨®é¡ã§ããæ¢å®å¤ã¯ãã±ã¼ã«ã«ä¾åãã¾ãã numberingSystem-
options弿°ã§ãã®ããããã£ã«æå®ãããå¤ãã¾ã㯠Unicode æ¡å¼µãã¼"nu"ã使ç¨ããå¿ è¦ã«å¿ãã¦æ¢å®å¤ãè¨å®ããã¾ããããã¯ãã®ãã±ã¼ã«ã§å¯¾å¿ãã¦ããè¨æ°æ³ã§ããæ¢å®å¤ã¯ãã±ã¼ã«ã«ä¾åãã¾ãã timeZone-
options弿°ã§ãã®ããããã£ã«æå®ãããå¤ãå¿ è¦ã«å¿ãã¦æ¢å®å¤ãè¨å®ããã¾ãã IANA ã¿ã¤ã ã¾ã¼ã³åã§ããæ¢å®å¤ã¯ã©ã³ã¿ã¤ã ã®æ¢å®ã®ã¿ã¤ã ã¾ã¼ã³ã§ããã¡ã¢:
Temporalã®æ¨æºåã§ã¯ããã©ã¦ã¶ã¼ã¯ç°ãªãå¥åã¸ã®æ£è¦åãè¡ãããå½åæå®ãããã®ã¨åãèå¥åã使ç¨ãããã¨ãæ±ãããã¾ãã詳細ã¯ã¿ã¤ã ã¾ã¼ã³ã¨ãªãã»ãããåç §ãã¦ãã ããã hourCycleçç¥å¯-
options弿°ã§ãã®ããããã£ã«æå®ãããå¤ãã¾ã㯠Unicode æ¡å¼µãã¼"hc"ã使ç¨ããå¿ è¦ã«å¿ãã¦æ¢å®å¤ãè¨å®ããã¾ããhour12ãoptionsã§æä¾ãããå ´åãä»ã®hourCycleã®è¨å®ã䏿¸ããã¾ããããã¯ã解決ããããªãã·ã§ã³ã«hourã¾ãã¯timeStyleãå«ã¾ããå ´åã«ã®ã¿åå¨ãã¾ããå¤ã¯"h11","h12","h23","h24"ã®ããããã§ãã æ¢å®å¤ã¯ãã±ã¼ã«ã«ä¾åãã¾ããã"h24"ãæ¢å®å¤ã¨ãªããã¨ã¯ããã¾ããã hour12çç¥å¯-
解決æ¸ã¿ãªãã·ã§ã³ã«
hourã¾ãã¯timeStyleãå«ã¾ããå ´åã«ã®ã¿åå¨ãã¾ããhourCycleã"h11"ã¾ãã¯"h12"ã®å ´åã¯trueãhourCycleã"h23"ã¾ãã¯"h24"ã®å ´åã¯falseã§ãã weekday,era,year,month,day,dayPeriod,hour,minute,second,fractionalSecondDigits,timeZoneNameçç¥å¯-
options弿°å ã®å¯¾å¿ããããããã£ã¨ã鏿ããããã±ã¼ã«ã«ãããæ¥æã®æ¸å¼è¨å®ã§å©ç¨å¯è½ãªçµã¿åããããã³è¡¨ç¾ã¨ã®æ¸å¼ç §åããå¾ãããå¤ããããã®ããããã£ã®ä¸é¨ã¯åå¨ããªãå ´åãããããã®å ´åã¯å¯¾å¿ããæåãæ¸å¼è¨å®ãããåºåã«è¡¨ç¾ãããªããã¨ã示ãã¾ããweekday,era,dayPeriodã¯"narrow","short","long"ã®ããããã§ããyear,day,hour,minute,secondã¯"numeric","2-digit","narrow"ã®ããããã§ããmonthã¯"numeric","2-digit","narrow","short","long"ã®ããããã§ããfractionalSecondDigitsã¯1,2,3ã®ããããã§ããtimeZoneNameã¯"short","long","shortOffset","longOffset","shortGeneric","longGeneric"ã®ããããã§ãããããã®ããããã£ã
optionsã§è¦æ±ãããå ´åãã³ã³ã¹ãã©ã¯ã¿ã¼ã¯dateStyleã¨timeStyleã®æå®ã鲿¢ãããããä¸ã®ã°ã«ã¼ãã¯æ±ºãã¦åå¨ãã¾ããã dateStyle,timeStyleçç¥å¯-
options弿°ã§ãããã®ããããã£ã«æå®ãããå¤ã§ãã"full","long","medium","short","none"ã®ããããã§ãããããã®ããããã£ã®ä¸é¨ãåå¨ããªãå ´åã対å¿ããæåãæ¸å¼åãããåºåã«è¡¨ç¤ºãããªããã¨ã示ãã¾ãããããã®ããããã£ã
optionsã§è¦æ±ãããå ´åãã³ã³ã¹ãã©ã¯ã¿ã¼ã¯åã ã®æ¥ææåãªãã·ã§ã³ã®æå®ã鲿¢ãããããä¸ã®ã°ã«ã¼ãã¯æ±ºãã¦åå¨ãã¾ãããã¡ã¢:
dateStyleããã³timeStyleã¯åã ã®æ¥ä»ããã³æå»æåã®ã¹ã¿ã¤ã«ã«å¯¾ããã·ã§ã¼ãã«ããã§ããããããã解決ãããæ£ç¢ºãªï¼ãã±ã¼ã«ä¾åã®ï¼æåã¹ã¿ã¤ã«ã¯ã解決æ¸ã¿ãªãã·ã§ã³ã«ã¯å«ã¾ãã¾ãããããã«ããã確å®ã«resolvedOptions()ã®çµæãIntl.DateTimeFormat()ã³ã³ã¹ãã©ã¯ã¿ã¼ã«ç´æ¥æ¸¡ããã¨ã§ããããã«ãªãã¾ãï¼dateStyleã¾ãã¯timeStyleã¨åå¥ã®æ¥ä»ã»æå»æåã®ã¹ã¿ã¤ã«ã®ä¸¡æ¹ãå«ãoptionsãªãã¸ã§ã¯ãã¯æå¹ã§ã¯ãªãããï¼ã
ä¾
>resolvedOptions ã¡ã½ããã®ä½¿ç¨
const germanFakeRegion = new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
const usedOptions = germanFakeRegion.resolvedOptions();
usedOptions.locale; // "de" (because "de-XX" does not exist)
usedOptions.calendar; // "gregory"
usedOptions.numberingSystem; // "latn"
usedOptions.timeZone; // "UTC"
usedOptions.month; // "numeric"
ã¦ã¼ã¶ã¼ã®ã¿ã¤ã ã¾ã¼ã³ã¨ãã±ã¼ã«è¨å®ã®åå¾
ãªãã·ã§ã³ãæå®ããªã Intl.DateTimeFormat ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãç¾å¨ã®ã·ã¹ãã è¨å®ã使ç¨ãã¾ããresolvedOptions() ã使ç¨ããã¨ãã¦ã¼ã¶ã¼ã®ç¾å¨ã®ã¿ã¤ã ã¾ã¼ã³ã¨ããã±ã¼ã«ã®æ¨å¥¨ãããæ¦ã¨è¨æ°æ³ãåå¾ã§ãã¾ãã
const systemOptions = new Intl.DateTimeFormat().resolvedOptions();
systemOptions.timeZone; // ä¾: "Europe/Brussels" ã¾ã㯠"Asia/Riyadh"
systemOptions.calendar; // ä¾: "gregory" ã¾ã㯠"islamic-umalqura"
systemOptions.numberingSystem; // ä¾: "latn" ã¾ã㯠"arab"
systemOptions.locale; // ä¾: "nl-BE" ã¾ã㯠"ar-SA"
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Internationalization API Specification> # sec-intl.datetimeformat.prototype.resolvedoptions> |