Intl.DateTimeFormat() constructor for objects that enable language-sensitive date and time formatting.

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

句法

new Intl.DateTimeFormat([locales[, options]])
					

参数

locales 可选

A string with a BCP 47 language tag, or an array of such strings. To use the browser's default locale, omit this argument or pass undefined . Unicode extension are supported (for example " en-US-u-ca-buddhist "). For the general form and interpretation of the locales argument, see the Intl page . The following Unicode extension keys are allowed:

nu
Numbering system. Possible values include: " arab ", " arabext ", " bali ", " beng ", " deva ", " fullwide ", " gujr ", " guru ", " hanidec ", " khmr ", " knda ", " laoo ", " latn ", " limb ", " mlym ", " mong ", " mymr ", " orya ", " tamldec ", " telu ", " thai ", " tibt ".
ca
Calendar. Possible values include: " buddhist ", " chinese ", " coptic ", " ethiopia ", " ethiopic ", " gregory ", " hebrew ", " indian ", " islamic ", " iso8601 ", " japanese ", " persian ", " roc ".
hc
Hour cycle. Possible values include: " h11 ", " h12 ", " h23 ", " h24 ".
options 可选

An object with some or all of the following properties:

dateStyle
The date formatting style to use when calling format() . Possible values include:
  • " full "
  • " long "
  • " medium "
  • " short "
timeStyle
The time formatting style to use when calling format() . Possible values include:
  • " full "
  • " long "
  • " medium "
  • " short "
fractionalSecondDigits
The number of fractional seconds to apply when calling format() . Valid values are 0-3.
calendar
Calendar. Possible values include: " buddhist ", " chinese ", " coptic ", " ethiopia ", " ethiopic ", " gregory ", " hebrew ", " indian ", " islamic ", " iso8601 ", " japanese ", " persian ", " roc ".
dayPeriod
The way day periods should be expressed. Possible values include: " narrow ", " short ", " long ".
numberingSystem
Numbering System. Possible values include: " arab ", " arabext ", " bali ", " beng ", " deva ", " fullwide ", " gujr ", " guru ", " hanidec ", " khmr ", " knda ", " laoo ", " latn ", " limb ", " mlym ", " mong ", " mymr ", " orya ", " tamldec ", " telu ", " thai ", " tibt ".
localeMatcher
The locale matching algorithm to use. Possible values are " lookup " and " best fit "; the default is " best fit ". For information about this option, see the Intl page .
timeZone
The time zone to use. The only value implementations must recognize is " UTC "; the default is the runtime's default time zone. Implementations may also recognize the time zone names of the IANA time zone database , such as " Asia/Shanghai ", " Asia/Kolkata ", " America/New_York ".
hour12
Whether to use 12-hour time (as opposed to 24-hour time). Possible values are true and false ; the default is locale dependent. This option overrides the hc language tag and/or the hourCycle option in case both are present.
hourCycle
The hour cycle to use. Possible values are " h11 ", " h12 ", " h23 ", or " h24 ". This option overrides the hc language tag, if both are present, and the hour12 option takes precedence in case both options have been specified.
formatMatcher
The format matching algorithm to use. Possible values are " basic " and " best fit "; the default is " best fit ". See the following paragraphs for information about the use of this property.

The following properties describe the date-time components to use in formatted output, and their desired representations. Implementations are required to support at least the following subsets:

  • weekday , year , month , day , hour , minute , second
  • weekday , year , month , day
  • year , month , day
  • year , month
  • month , day
  • hour , minute , second
  • hour , minute

Implementations may support other subsets, and requests will be negotiated against all available subset-representation combinations to find the best match. Two algorithms are available for this negotiation and selected by the formatMatcher property: A fully specified " basic " algorithm and an implementation-dependent " best fit " algorithm.

weekday
The representation of the weekday. Possible values are:
  • " long " (e.g., Thursday )
  • " short " (e.g., Thu )
  • " narrow " (e.g., T ). Two weekdays may have the same narrow style for some locales (e.g. Tuesday 's narrow style is also T ).
era
The representation of the era. Possible values are:
  • " long " (e.g., Anno Domini )
  • " short " (e.g., AD )
  • " narrow " (e.g., A )
year
The representation of the year. Possible values are:
  • " numeric " (e.g., 2012 )
  • " 2-digit " (e.g., 12 )
month
The representation of the month. Possible values are:
  • " numeric " (e.g., 2 )
  • " 2-digit " (e.g., 02 )
  • " long " (e.g., March )
  • " short " (e.g., Mar )
  • " narrow " (e.g., M ). Two months may have the same narrow style for some locales (e.g. May 's narrow style is also M ).
day
The representation of the day. Possible values are:
  • " numeric " (e.g., 1 )
  • " 2-digit " (e.g., 01 )
hour
The representation of the hour. Possible values are " numeric ", " 2-digit ".
minute
The representation of the minute. Possible values are " numeric ", " 2-digit ".
second
The representation of the second. Possible values are " numeric ", " 2-digit ".
timeZoneName
The representation of the time zone name. Possible values are:
  • " long " (e.g., British Summer Time )
  • " short " (e.g., GMT+1 )

The default value for each date-time component property is undefined , but if all component properties are undefined , then year , month ,和 day are assumed to be " numeric ".

范例

使用 DateTimeFormat

In basic use without specifying a locale, DateTimeFormat uses the default locale and default options.

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
// toLocaleString without arguments depends on the implementation,
// the default locale, and the default time zone
console.log(new Intl.DateTimeFormat().format(date));
// → "12/19/2012" if run with en-US locale (language) and time zone America/Los_Angeles (UTC-0800)
					

Using timeStyle and dateStyle

let o = new Intl.DateTimeFormat("en" , {
  timeStyle: "short"
});
console.log(o.format(Date.now())); // "13:31 AM"
let o = new Intl.DateTimeFormat("en" , {
  dateStyle: "short"
});
console.log(o.format(Date.now())); // "07/07/20"
let o = new Intl.DateTimeFormat("en" , {
  timeStyle: "medium",
  dateStyle: "short"
});
console.log(o.format(Date.now())); // "07/07/20, 13:31:55 AM"
					

规范

规范
ECMAScript 国际化 API (ECMA-402)
The definition of 'Intl.DateTimeFormat' in that specification.

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request. 更新 GitHub 上的兼容性数据
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
DateTimeFormat() 构造函数 Chrome 24 Edge 12 Firefox 29 IE 11 Opera 15 Safari 10 WebView Android 4.4 Chrome Android 25 Firefox Android 56 Opera Android 14 Safari iOS 10 Samsung Internet Android 1.5 nodejs 13.0.0
13.0.0
部分支持 0.12
Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the DateTimeFormat instance silently falls back to en-US . To make full ICU (locale) data available for versions prior to 13, see Node.js documentation on the --with-intl option and how to provide the data.
dateStyle Chrome 76 Edge No Firefox 79 IE No Opera 63 Safari No WebView Android 76 Chrome Android 76 Firefox Android No Opera Android 54 Safari iOS No Samsung Internet Android No nodejs 12.9.0
hourCycle Chrome 73 Edge 18 Firefox 58 IE No Opera 60 Safari 13 WebView Android 73 Chrome Android 73 Firefox Android 58 Opera Android 52 Safari iOS 13 Samsung Internet Android No nodejs 12.0.0
IANA time zone names in timeZone option Chrome 24 Edge 14 Firefox 52 IE No Opera 15 Safari 10 WebView Android 37 Chrome Android 25 Firefox Android 56 Opera Android 14 Safari iOS 10 Samsung Internet Android 1.5 nodejs 4.0.0
timeStyle Chrome 76 Edge No Firefox 79 IE No Opera 63 Safari No WebView Android 76 Chrome Android 76 Firefox Android No Opera Android 54 Safari iOS No Samsung Internet Android No nodejs 12.9.0

图例

完整支持

完整支持

不支持

不支持

见实现注意事项。

实现进度

The following table provides a daily implementation status for new features that has not yet reached cross-browser stability. The data is generated by running the relevant feature tests in Test262 , the standard test suite of JavaScript, in the nightly build, or latest release of each browser's JavaScript engine.

另请参阅

元数据

  • 最后修改: