published: 11 Sep 2022
2 min read
How to format a date to a string in JavaScript
There are multiple ways to format a date in JavaScript. You can either use the built-in methods like toUTCString()
and toISOString()
, or the Intl.DateTimeFormat
object.
Built-in Methods
The Date
object in JavaScript exposes several built-in methods that you can use to display the date in different formats.
By default, the toString()
method outputs the date in full text string format:
const date = new Date(2021, 8, 14, 7, 14);
console.log(date.toString());
// OR
console.log(date);
// Tue Sep 14 2021 07:14:00 GMT+0500 (Pakistan Standard Time)
To display a date as a UTC string, you can use the toUTCString()
method:
console.log(date.toUTCString());
// Tue, 14 Sep 2021 02:14:00 GMT
If you want to show the date in ISO format, you use the toISOString()
method instead:
console.log(date.toISOString());
// 2021-09-14T02:14:00.000Z
Similarly, you can use toDateString()
and toTimeString()
methods to display only date and time parts of the Date
object, respectively:
console.log(date.toDateString());
// Tue Sep 14 2021
console.log(date.toTimeString());
// 07:14:00 GMT+0500 (Pakistan Standard Time)
You are not limited to the above methods only. Off course, you can also use methods like getDate()
, getMonth()
, and getFullYear()
to retrieve day, month, and full year from a date object in JavaScript:
const day = date.getDate();
const month = date.getMonth() + 1;
const year = date.getFullYear();
const str = '${day}/${month}/${year}';
console.log(str);
// 14/9/2021
Intl.DateTimeFormat
Methods
The Intl.DateTimeFormat
object is available in all modern browsers and IE 11. It provides methods for language-sensitive date and time formatting in JavaScript.
One such method is format()
that formats a date according to the locale and formatting options of the Intl.DateTimeFormat
object.
Here is an example that formats the date using the default locale:
const date = new Date(2021, 8, 14, 7, 14);
const str = Intl.DateTimeFormat().format(date);
console.log(str);
// 14/9/2021
If you need more localized date and time format, just pass the desired locale to Intl.DateTimeFormat()
as shown below:
console.log(new Intl.DateTimeFormat('de-DE').format(date));
// 14.9.2021
console.log(new Intl.DateTimeFormat('ko-KR').format(date));
// 2021. 9. 14.
console.log(new Intl.DateTimeFormat('ar-EG').format(date));
// ١٤/٩/٢٠٢١
The date object can be further customized by passing an options
object to the Intl.DateTimeFormat()
constructor:
const options = {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
};
console.log(new Intl.DateTimeFormat('de-DE', options).format(date));
// Dienstag, 14. September 2021
options.timeZone = 'CET';
options.timeZoneName = 'short';
console.log(new Intl.DateTimeFormat('it-IT', options).format(date));
// martedi 14 settembre 2021, GMT+2
options.fractionalSecondDigits = 3;
console.log(new Intl.DateTimeFormat('ar-EG', options).format(date));
// الاثنين، ١٣ سبتمبر ٢٠٢١ ٠٠٠ غرينتش-٥
Are we missing something? Help us improve this article. Reach out to us.
How to format a date to a string in JavaScript
There are multiple ways to format a date in JavaScript. You can either use the built-in methods like toUTCString()
and toISOString()
, or the Intl.DateTimeFormat
object.
Built-in Methods
The Date
object in JavaScript exposes several built-in methods that you can use to display the date in different formats.
By default, the toString()
method outputs the date in full text string format:
const date = new Date(2021, 8, 14, 7, 14);
console.log(date.toString());
// OR
console.log(date);
// Tue Sep 14 2021 07:14:00 GMT+0500 (Pakistan Standard Time)
To display a date as a UTC string, you can use the toUTCString()
method:
console.log(date.toUTCString());
// Tue, 14 Sep 2021 02:14:00 GMT
If you want to show the date in ISO format, you use the toISOString()
method instead:
console.log(date.toISOString());
// 2021-09-14T02:14:00.000Z
Similarly, you can use toDateString()
and toTimeString()
methods to display only date and time parts of the Date
object, respectively:
console.log(date.toDateString());
// Tue Sep 14 2021
console.log(date.toTimeString());
// 07:14:00 GMT+0500 (Pakistan Standard Time)
You are not limited to the above methods only. Off course, you can also use methods like getDate()
, getMonth()
, and getFullYear()
to retrieve day, month, and full year from a date object in JavaScript:
const day = date.getDate();
const month = date.getMonth() + 1;
const year = date.getFullYear();
const str = '${day}/${month}/${year}';
console.log(str);
// 14/9/2021
Intl.DateTimeFormat
Methods
The Intl.DateTimeFormat
object is available in all modern browsers and IE 11. It provides methods for language-sensitive date and time formatting in JavaScript.
One such method is format()
that formats a date according to the locale and formatting options of the Intl.DateTimeFormat
object.
Here is an example that formats the date using the default locale:
const date = new Date(2021, 8, 14, 7, 14);
const str = Intl.DateTimeFormat().format(date);
console.log(str);
// 14/9/2021
If you need more localized date and time format, just pass the desired locale to Intl.DateTimeFormat()
as shown below:
console.log(new Intl.DateTimeFormat('de-DE').format(date));
// 14.9.2021
console.log(new Intl.DateTimeFormat('ko-KR').format(date));
// 2021. 9. 14.
console.log(new Intl.DateTimeFormat('ar-EG').format(date));
// ١٤/٩/٢٠٢١
The date object can be further customized by passing an options
object to the Intl.DateTimeFormat()
constructor:
const options = {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
};
console.log(new Intl.DateTimeFormat('de-DE', options).format(date));
// Dienstag, 14. September 2021
options.timeZone = 'CET';
options.timeZoneName = 'short';
console.log(new Intl.DateTimeFormat('it-IT', options).format(date));
// martedi 14 settembre 2021, GMT+2
options.fractionalSecondDigits = 3;
console.log(new Intl.DateTimeFormat('ar-EG', options).format(date));
// الاثنين، ١٣ سبتمبر ٢٠٢١ ٠٠٠ غرينتش-٥
Are you looking for other code tips?
JS Nooby
Javascript connoisseur