Intl.DateTimeFormat
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æ.
Intl.DateTimeFormat ãªãã¸ã§ã¯ãã¯ãè¨èªã«å¿ããæ¥ä»ã¨æå»ã®æ¸å¼åãå¯è½ã«ãã¾ãã
試ãã¦ã¿ã¾ããã
const date = new Date(Date.UTC(2020, 11, 20, 3, 23, 16, 738));
// 以ä¸ã®çµæã¯ UTC ã¿ã¤ã ã¾ã¼ã³ãæ³å® - å®è¡æã®çµæã¯ç°ãªãå¯è½æ§ããã
// Specify default date formatting for language (locale)
console.log(new Intl.DateTimeFormat("en-US").format(date));
// äºæ³ãããçµæ: "12/20/2020"
// 代æ¿è¨èªï¼ãã®å ´åã¯ã¤ã³ããã·ã¢èªï¼ãæã¤è¨èªã®æ¢å®ã®å½¢å¼ãæå®ãã
console.log(new Intl.DateTimeFormat(["ban", "id"]).format(date));
// äºæ³ãããçµæ: "20/12/2020"
// "style" ãªãã·ã§ã³ã使ç¨ãã¦æ¥ä»ã¨æå»ã®å½¢å¼ãæå®ãã¾ãï¼ä¾: full, long, medium, shortï¼
console.log(
new Intl.DateTimeFormat("en-GB", {
dateStyle: "full",
timeStyle: "long",
timeZone: "Australia/Sydney",
}).format(date),
);
// äºæ³ãããçµæ: "Sunday, 20 December 2020 at 14:23:16 GMT+11"
ã³ã³ã¹ãã©ã¯ã¿ã¼
Intl.DateTimeFormat()-
æ°ãã
DateTimeFormatãªãã¸ã§ã¯ããçæãã¾ãã
éçã¡ã½ãã
Intl.DateTimeFormat.supportedLocalesOf()-
æå®ããããã±ã¼ã«ã®ãã¡ãå®è¡æã®æ¢å®ã®ãã±ã¼ã«ã«ãã©ã¼ã«ããã¯ããã«å¯¾å¿ããããã®ãé åã«åãã¦è¿ãã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ããããã£
ãããã®ããããã£ã¯ Intl.DateTimeFormat.prototype ä¸ã§å®ç¾©ããããã¹ã¦ã® Intl.DateTimeFormat ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Intl.DateTimeFormat.prototype.constructor-
ãã®ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã
Intl.DateTimeFormatã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯Intl.DateTimeFormatã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã Intl.DateTimeFormat.prototype[Symbol.toStringTag]-
[Symbol.toStringTag]ããããã£ã®åæå¤ã§ãæåå"Intl.DateTimeFormat"ã§ãããã®ããããã£ã¯Object.prototype.toString()ã§ä½¿ç¨ããã¾ãã
ã¤ã³ã¹ã¿ã³ã¹ã¡ã½ãã
Intl.DateTimeFormat.prototype.format()-
ãã±ã¼ã«ããã³ãã®
DateTimeFormatãªãã¸ã§ã¯ãã®æ¸å¼åãªãã·ã§ã³ã«åã£ã¦æ¥ä»ãæ¸å¼åããã²ãã¿ã¼é¢æ°ã§ãã Intl.DateTimeFormat.prototype.formatRange()-
ãã®ã¡ã½ãã㯠2 ã¤ã® Date ãåãåãããã®
DateTimeFormatã¤ã³ã¹ã¿ã³ã¹ãçæããéã«æå®ããããã±ã¼ã«ã¨ãªãã·ã§ã³ã«åºã¥ãã¦ãæãç°¡æ½ãªæ¹æ³ã§æ¥ä»ã®ç¯å²ãæ¸å¼åãã¾ãã Intl.DateTimeFormat.prototype.formatRangeToParts()-
ãã®ã¡ã½ãã㯠2 ã¤ã® Date ãåãåããæ¸å¼åãããæ¥ä»ã®ç¯å²ã®åé¨åã表ããã±ã¼ã«åºæã®ãã¼ã¯ã³ãå«ããªãã¸ã§ã¯ãã®é åãè¿ãã¾ãã
Intl.DateTimeFormat.prototype.formatToParts()-
ãªãã¸ã§ã¯ãã®
Arrayãè¿ããããã¯å°ç¨ã®ãã±ã¼ã«ãæèããæ¸å¼ã§ä½¿ç¨ãããã¨ãã§ããé¨åå ã®æ°å¤æååã表ãã¾ãã Intl.DateTimeFormat.prototype.resolvedOptions()-
ãã±ã¼ã«ãåæ ãã¦ããããããã£ã¨ãªãã¸ã§ã¯ãã®åæåä¸ã«è¨ç®ãããç §åãªãã·ã§ã³ããã£ãæ°ãããªãã¸ã§ã¯ããè¿ãã¾ãã
ä¾
>DateTimeFormat ã®ä½¿ç¨
åºæ¬çã«ããã±ã¼ã«ãæå®ããã«ä½¿ç¨ããã¨ã DateTimeFormat ã¯æ¢å®ã®ãã±ã¼ã«ã¨ãªãã·ã§ã³ã使ç¨ãã¾ãã
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// 弿°ç¡ãã® toLocaleString ã¯å®è£
ã«ä¾åãã¾ãã
// æ¢å®ã®ãã±ã¼ã«ãæ¢å®ã®ã¿ã¤ã ã¾ã¼ã³ã§ãã
console.log(new Intl.DateTimeFormat().format(date));
// "12/19/2012" ã¯ã en-US ãããã¼ãï¼è¨èªï¼ã§ America/Los_Angeles (UTC-0800) ã¿ã¤ã ã¾ã¼ã³ã®å ´å
locales ã®ä½¿ç¨
ãã®ä¾ã§ã¯ããã¼ã«ã©ã¤ãºãããæ¥ä»ã¨æå»ã®å½¢å¼ã®ããªã¨ã¼ã·ã§ã³ã®ä¸é¨ç¤ºãã¦ãã¾ããã¢ããªã±ã¼ã·ã§ã³ã®ã¦ã¼ã¶ã¼ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ä½¿ç¨ãããè¨èªã®ãã©ã¼ããããåå¾ããã«ã¯ã locales 弿°ã使ç¨ãã¦ããã®è¨èª (ããã³ããããããã¤ãã®ãã©ã¼ã«ããã¯è¨èª) ãæå®ãã¦ãã ããã
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// 以ä¸ã®çµæã¯ãã¿ã¤ã ã¾ã¼ã³ã« America/Los_Angeles (UTC-0800, å¤ªå¹³æ´æ¨æºæ) ã使ç¨ããå ´å
// ã¢ã¡ãªã«è±èªã§ã¯ æ-æ¥-å¹´ ã®é ã使ç¨
console.log(new Intl.DateTimeFormat("en-US").format(date));
// "12/19/2012"
// ã¤ã®ãªã¹è±èªã§ã¯ æ¥-æ-å¹´ ã®é ã使ç¨
console.log(new Intl.DateTimeFormat("en-GB").format(date));
// â "19/12/2012"
// éå½ã§ã¯ å¹´-æ-æ¥ ã®é ã使ç¨
console.log(new Intl.DateTimeFormat("ko-KR").format(date));
// "2012. 12. 19."
// ã¢ã©ãã¢èªåã®å¤§åã®å½ã§ã¯ãã¢ã©ãã¢æ°åã使ç¨ãã¦ãã
console.log(new Intl.DateTimeFormat("ar-EG").format(date));
// "١٩â/١٢â/٢٠١٢"
// æ¥æ¬èªã®å ´åãã¢ããªã±ã¼ã·ã§ã³ã§ã¯æ¥æ¬ã®æ¦ã使ç¨ãããã¨ãæã¾ããå ´åãããã 2012 å¹´ã¯å¹³æ 24 å¹´ã«ç¸å½
console.log(new Intl.DateTimeFormat("ja-JP-u-ca-japanese").format(date));
// "24/12/19"
// 対å¿ãã¦ããªãå¯è½æ§ã®ããè¨èªï¼ä¾ï¼ããªèªï¼ããªã¯ã¨ã¹ãããéã¯ã代æ¿è¨èªï¼ãã®å ´åã¯ã¤ã³ããã·ã¢èªï¼ãæå®ãã
console.log(new Intl.DateTimeFormat(["ban", "id"]).format(date));
// "19/12/2012"
options ã®ä½¿ç¨
æ¥ä»ã¨æå»ã®æ¸å¼ã¯ options 弿°ã使ç¨ãã¦ã«ã¹ã¿ãã¤ãºã§ãã¾ãã
const date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0, 200));
// ææ¥ã¨é·ãæ¥ä»ãæå®ãã¦ãªã¯ã¨ã¹ããã
let options = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
};
console.log(new Intl.DateTimeFormat("de-DE", options).format(date));
// "Donnerstag, 20. Dezember 2012"
// ã¢ããªã±ã¼ã·ã§ã³ã¯ UTC ã使ç¨ãããããå¯è¦åãããå ´åããã
options.timeZone = "UTC";
options.timeZoneName = "short";
console.log(new Intl.DateTimeFormat("en-US", options).format(date));
// "Thursday, December 20, 2012, GMT"
// æã«ã¯ããæ£ç¢ºã«è¡¨ç¾ããããªãã¨ãããã
options = {
hour: "numeric",
minute: "numeric",
second: "numeric",
timeZone: "Australia/Sydney",
timeZoneName: "short",
};
console.log(new Intl.DateTimeFormat("en-AU", options).format(date));
// "2:00:00 pm AEDT"
// æã«ã¯æ¥µãã¦æ£ç¢ºã§ããããã¨æããã¨ããã
options.fractionalSecondDigits = 3; // ç§ä»¥ä¸ã®å°æ°ç¹ä»¥ä¸ã®æ¡æ°
console.log(new Intl.DateTimeFormat("en-AU", options).format(date));
// "2:00:00.200 pm AEDT"
// æã«ã¯ã¢ã¡ãªã«ã§ã 24 æé表è¨ãå¿
è¦ã
options = {
year: "numeric",
month: "numeric",
day: "numeric",
hour: "numeric",
minute: "numeric",
second: "numeric",
hour12: false,
timeZone: "America/Los_Angeles",
};
console.log(new Intl.DateTimeFormat("en-US", options).format(date));
// "12/19/2012, 19:00:00"
// ãªãã·ã§ã³ãæå®ãããã©ã¦ã¶ã¼ã®æ¢å®ã®ãã±ã¼ã«ã使ç¨ããã«ã¯ããundefined ã使ç¨ãã
console.log(new Intl.DateTimeFormat(undefined, options).format(date));
// "12/19/2012, 19:00:00"
// æã«ã¯æé帯ãå«ãããã¨ãå½¹ç«ã¤ãã¨ããã
options = { hour: "numeric", dayPeriod: "short" };
console.log(new Intl.DateTimeFormat("en-US", options).format(date));
// 10 at night
使ç¨ãããã«ã¬ã³ãã¼ã¨çªå·ä»ãã®å½¢å¼ã¯ãoptions 弿°ãéãã¦åå¥ã«è¨å®ãããã¨ãå¯è½ã§ãã
const options = { calendar: "chinese", numberingSystem: "arab" };
const dateFormat = new Intl.DateTimeFormat(undefined, options);
const usedOptions = dateFormat.resolvedOptions();
console.log(usedOptions.calendar);
// "chinese"
console.log(usedOptions.numberingSystem);
// "arab"
console.log(usedOptions.timeZone);
// "America/New_York" ï¼ã¦ã¼ã¶ã¼ã®æ¢å®ã®ã¿ã¤ã ã¾ã¼ã³ï¼
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Internationalization API Specification> # datetimeformat-objects> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
Intl.DateTimeFormatã®ããªãã£ã« (FormatJS)IntlDate.prototype.toLocaleString()Date.prototype.toLocaleDateString()Date.prototype.toLocaleTimeString()Temporal.Instant.prototype.toLocaleString()Temporal.PlainDate.prototype.toLocaleString()Temporal.PlainDateTime.prototype.toLocaleString()Temporal.PlainTime.prototype.toLocaleString()Temporal.PlainYearMonth.prototype.toLocaleString()Temporal.PlainMonthDay.prototype.toLocaleString()Temporal.ZonedDateTime.prototype.toLocaleString()