Web/JavaScript/Reference/Global objects/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.
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.
Syntax
Since ECMAScript 2017:
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.
monthOptional- An integer between
0(January) and11(December) representing the month. Since ECMAScript 2017 it defaults to0if omitted. (Up until ECMAScript 2016,monthwas a required parameter. As of ES2017, it no longer is.) dayOptional- An integer between
1and31representing the day of the month. If omitted, defaults to1. hourOptional- An integer between
0and23representing the hours. If omitted, defaults to0. minuteOptional- An integer between
0and59representing the minutes. If omitted, defaults to0. secondOptional- An integer between
0and59representing the seconds. If omitted, defaults to0. millisecondOptional- An integer between
0and999representing the milliseconds. If omitted, defaults to0.
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 aDateobject.
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:
let utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));
Specifications
| Specification |
|---|
| ECMAScript (ECMA-262)The definition of 'Date.UTC' in that specification. |
Browser compatibility
The compatibility table in 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.
Update compatibility data on GitHub
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
UTC
|
Chrome
Full support 1 |
Edge
Full support 12 |
Firefox
Full support 1 |
IE
Full support 3 |
Opera
Full support 3 |
Safari
Full support 1 |
WebView Android
Full support 1 |
Chrome Android
Full support 18 |
Firefox Android
Full support 4 |
Opera Android
Full support 10.1 |
Safari iOS
Full support 1 |
Samsung Internet Android
Full support 1.0 |
nodejs
Full support 0.1.100 |
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
Date.UTC() by Mozilla Contributors is licensed under CC-BY-SA 2.5.