JavaScript Date and Time - Formatting and Parsing Dates


Working with dates and times in JavaScript is a common task. Formatting and parsing dates allows you to display and manipulate date and time values according to your application's requirements. In this guide, we'll explore how to format and parse dates in JavaScript and provide sample code to illustrate these tasks.


Formatting Dates


JavaScript's Date object provides various methods to format dates. Here's an example of how to format a date as a string:


const currentDate = new Date();
// Format the current date as a string in "YYYY-MM-DD" format
const formattedDate = currentDate.toISOString().split('T')[0];
console.log('Formatted Date: ' + formattedDate); // Outputs: Formatted Date: YYYY-MM-DD

The toISOString() method returns a string in the ISO 8601 format, and we use split('T') to extract the date portion.


Parsing Dates


You can parse a date string into a Date object using the Date constructor:


const dateStr = '2022-10-15'; // Date in "YYYY-MM-DD" format
const parsedDate = new Date(dateStr);
console.log('Parsed Date: ' + parsedDate); // Outputs: Parsed Date: Sat Oct 15 2022 00:00:00 GMT+0000 (Coordinated Universal Time)

Custom Date Formatting


If you need to format dates in a custom way, you can use libraries like moment.js or the Intl.DateTimeFormat object in modern JavaScript environments:


const customFormattedDate = new Intl.DateTimeFormat('en-US', {
year: 'numeric',
month: 'short',
day: '2-digit'
}).format(currentDate);
console.log('Custom Formatted Date: ' + customFormattedDate); // Outputs: Custom Formatted Date: Oct 15, 2022

Conclusion


Formatting and parsing dates is crucial in JavaScript applications to present date and time information to users and work with date values. Understanding how to format and parse dates is essential for handling various scenarios involving date and time data.


Experiment with date formatting and parsing in your JavaScript projects to ensure that your applications provide accurate and user-friendly date and time representations.