๐๏ธ TypeScript โ Date Object: Mastering Date and Time with Detailed Code Explanations
๐งฒ Introduction โ What Is the Date Object in TypeScript?
The Date object in TypeScript, inherited from JavaScript, provides a way to create, manipulate, compare, and format date and time values. With TypeScript’s static typing and IntelliSense support, working with dates becomes safer and easier to manage โ especially in large-scale applications.
๐ฏ In this article, youโll learn:
- How to create a
Dateobject in multiple ways - How to access and modify parts of a date
- How to compare and format dates
- Real-world use cases for date operations
๐ What Is the Date Object?
The Date object stores a specific point in time, measured in milliseconds since January 1, 1970, UTC (known as the Unix epoch).
const now: Date = new Date();
console.log(now); // Outputs the current date and time
๐ Explanation:
new Date()creates a new date object representing the current system time.- TypeScript infers the type as
Datewhen usingnew Date().
๐งฑ Different Ways to Create a Date Object
1๏ธโฃ Current Date and Time
const current: Date = new Date();
console.log(current); // e.g., 2025-05-26T09:15:00.000Z
โ
Creates a new Date object with the current time.
2๏ธโฃ From a Date String
const fromString: Date = new Date("2024-12-25T00:00:00");
console.log(fromString); // Outputs: 2024-12-25T00:00:00.000Z
โ Parses an ISO 8601 string to a valid Date object.
3๏ธโฃ From Individual Components
const specific: Date = new Date(2024, 11, 25); // December 25, 2024
console.log(specific); // 2024-12-25T00:00:00.000Z
๐ Explanation:
new Date(year, monthIndex, day)accepts numeric values.- Months are zero-based, so
11 = December.
4๏ธโฃ From Timestamp
const timestampDate: Date = new Date(1700000000000);
console.log(timestampDate); // Outputs date corresponding to timestamp
โ
Converts a Unix timestamp (in milliseconds) into a Date.
๐ Accessing Date Components
You can retrieve parts of a date using “getter” methods:
const date = new Date("2025-05-26T12:30:00");
console.log(date.getFullYear()); // 2025
console.log(date.getMonth()); // 4 (May)
console.log(date.getDate()); // 26
console.log(date.getDay()); // 1 (Monday)
console.log(date.getHours()); // 12
console.log(date.getMinutes()); // 30
console.log(date.getSeconds()); // 0
๐ Explanation:
getFullYear()returns the year (e.g., 2025).getMonth()returns 0-based month (May = 4).getDay()returns weekday (0 = Sunday, 1 = Monday).
๐ Setting Date and Time Values
You can update a Date object using “setter” methods.
const date = new Date();
date.setFullYear(2030);
date.setMonth(0); // January
date.setDate(15);
console.log(date); // Outputs: 2030-01-15T...
๐ Explanation:
setFullYear(2030)sets the year.setMonth(0)sets January.setDate(15)sets the 15th day of the month.
๐งฎ Performing Date Arithmetic
โ Adding Days to a Date
function addDays(date: Date, days: number): Date {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
const today = new Date("2025-05-26");
const nextWeek = addDays(today, 7);
console.log(nextWeek); // 2025-06-02
๐ Explanation:
getDate()retrieves the current day.setDate(currentDay + days)moves the date forward.
โ Subtracting Hours from a Date
function subtractHours(date: Date, hours: number): Date {
return new Date(date.getTime() - hours * 60 * 60 * 1000);
}
const updated = subtractHours(new Date("2025-05-26T12:00:00"), 3);
console.log(updated); // 2025-05-26T09:00:00.000Z
๐ Explanation:
- Converts hours to milliseconds and subtracts from current time.
๐ Comparing Dates
const a = new Date("2025-01-01");
const b = new Date("2025-12-31");
console.log(a < b); // true
console.log(a.getTime() === b.getTime()); // false
๐ Explanation:
- Dates can be compared using relational operators (
<,>,===) by comparing their timestamps.
๐ข Formatting Dates
โ toDateString()
console.log(new Date().toDateString()); // "Mon May 26 2025"
โ toISOString()
console.log(new Date().toISOString()); // "2025-05-26T09:00:00.000Z"
โ toLocaleDateString()
console.log(new Date().toLocaleDateString("en-US")); // "5/26/2025"
๐ Explanation:
toLocaleDateString()allows locale-specific formatting.toISOString()is great for consistent formatting across systems.
๐ Working with Time Zones
const indiaTime = new Date().toLocaleString("en-IN", {
timeZone: "Asia/Kolkata"
});
console.log(indiaTime); // "26/5/2025, 2:30:00 pm"
๐ Explanation:
- Uses
toLocaleString()withtimeZoneoption for formatting in a specific region.
๐ Real-World Use Cases
| Use Case | Description |
|---|---|
| Scheduling tasks | Calculate future or past dates |
| Logging and audit trails | Use toISOString() for timestamps |
| Age or duration calculation | Use date difference logic |
| Date validation in forms | Compare current vs. selected dates |
| Internationalization | Use locale-based formatting for users |
โ Summary โ TypeScript Date Object
The Date object in TypeScript is a robust tool for managing, comparing, and formatting dates and times. With TypeScriptโs type checking, you can handle date operations more confidently and avoid common pitfalls.
๐ Key Takeaways:
- Create dates using
new Date()or from strings/timestamps. - Use getters like
getFullYear()and setters likesetDate()to access or modify values. - Perform date arithmetic using milliseconds or helper functions.
- Format dates using
toLocaleDateString()ortoISOString(). - Use third-party libraries for advanced manipulation (e.g.,
date-fns,Luxon).
โ๏ธ Real-world relevance:
- Ideal for date pickers, log timestamps, billing cycles, and globalized apps.
โ FAQs โ TypeScript Date Object
โ Can I directly compare two Date objects?
โ
Yes. Use date1.getTime() === date2.getTime() or relational operators like date1 < date2.
โ How do I convert a string to a Date?
const date = new Date("2025-12-25");
โ TypeScript will parse ISO-compatible strings into valid Date objects.
โ How to add time to a Date object?
Use methods like setDate() or manipulate getTime() with milliseconds:
date.setDate(date.getDate() + 7); // Adds 7 days
โ Is there timezone support in TypeScript?
โ
Use toLocaleString() with the timeZone option for formatted strings. For advanced support, consider using libraries like date-fns-tz.
โ What’s the best way to format dates?
Use:
date.toLocaleDateString("en-US"); // Locale-specific
date.toISOString(); // Universal
For custom formats, use a date utility library.
Share Now :
