Date.UTC()

The Date.UTC() method accepts parameters similar to the Date constructor, but treats them as UTC. It returns the number of milliseconds since January 1, 1970, 00:00:00 UTC.

Syntax

ECMAScript 2017 and later:

Date.UTC(year[, month[, day[, hour[, minute[, second[, millisecond]]]]]])

ECMAScript 2016 and earlier: (month used to be required)

Date.UTC(year, month[, day[, hour[, minute[, second[, millisecond]]]]])

Parameters

year
A full year.
month
An integer between 0 (January) and 11 (December) representing the month. (Up through ECMAScript 2016, month was a required parameter. As of ES2017, it no longer is.)
day Optional
Optional. An integer between 1 and 31 representing the day of the month. If omitted, defaults to 1.
hour Optional
An integer between 0 and 23 representing the hours. If omitted, defaults to 0.
minute Optional
An integer between 0 and 59 representing the minutes. If omitted, defaults to 0.
second Optional
An integer between 0 and 59 representing the seconds. If omitted, defaults to 0.
millisecond Optional
An integer between 0 and 999 representing the milliseconds. If omitted, defaults to 0.

Return value

A number representing the number of milliseconds for the given date since January 1, 1970, 00:00:00, UTC.

Description

UTC() takes comma-delimited date and time parameters and returns the number of milliseconds between January 1, 1970, 00:00:00, universal time and the specified date and time.

Years between 0 and 99 are converted to a year in the 20th century (1900 + year); for example, 95 is converted to the year 1995.

The UTC() method differs from the Date constructor in two ways.

  • Date.UTC() uses universal time instead of the local time.
  • Date.UTC() returns a time value as a number instead of creating a Date object.

If a parameter is outside of the expected range, the UTC() method updates the other parameters to accommodate the value. For example, if 15 is used for month, the year will be incremented by 1 (year + 1) and 3 will be used for the month.

UTC() is a static method of Date, so it's called as Date.UTC() rather than as a method of a Date instance.

Examples

Using Date.UTC()

The following statement creates a Date object with the arguments treated as UTC instead of local:

var utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));

Specifications

Specification Status Comment
ECMAScript Latest Draft (ECMA-262)
The definition of 'Date.UTC' in that specification.
Draft
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Date.UTC' in that specification.
Standard
ECMAScript 5.1 (ECMA-262)
The definition of 'Date.UTC' in that specification.
Standard
ECMAScript 1st Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.0.

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
UTCChrome Full support YesEdge Full support 12Firefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Compatibility notes

Date.UTC with fewer than two arguments

When providing less than two arguments to Date.UTC, ECMAScript 2017 requires that NaN is returned. Engines that weren't supporting this behavior have been updated (see bug 1050755, ecma-262 #642).

Date.UTC();
Date.UTC(1);

// Safari: NaN 
// Chrome/Opera/V8: NaN

// Firefox <54: non-NaN
// Firefox 54+: NaN

// IE: non-NaN
// Edge: NaN

See also