Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
@internationalized/date
Advanced tools
Internationalized calendar and date manipulation utilities
@internationalized/date is a JavaScript library that provides utilities for handling dates and times in an internationalized manner. It offers a range of functionalities including date manipulation, formatting, and parsing, all with support for various locales and calendars.
Date Manipulation
This feature allows you to manipulate dates by adding or subtracting days, months, or years. The code sample demonstrates how to add 5 days to a given date.
const { CalendarDate, addDays } = require('@internationalized/date');
const date = new CalendarDate(2023, 10, 5);
const newDate = addDays(date, 5);
console.log(newDate); // Outputs: CalendarDate { year: 2023, month: 10, day: 10 }
Date Formatting
This feature provides utilities to format dates according to different locales. The code sample shows how to format a date in the 'en-US' locale.
const { CalendarDate, DateFormatter } = require('@internationalized/date');
const date = new CalendarDate(2023, 10, 5);
const formatter = new DateFormatter('en-US');
console.log(formatter.format(date)); // Outputs: 10/5/2023
Date Parsing
This feature allows you to parse date strings into date objects according to different locales. The code sample demonstrates parsing a date string in the 'en-US' locale.
const { DateFormatter } = require('@internationalized/date');
const formatter = new DateFormatter('en-US');
const date = formatter.parse('10/5/2023');
console.log(date); // Outputs: CalendarDate { year: 2023, month: 10, day: 5 }
Support for Multiple Calendars
This feature provides support for multiple calendar systems. The code sample shows how to create a date object using the Japanese calendar.
const { CalendarDate, JapaneseCalendar } = require('@internationalized/date');
const date = new CalendarDate(2023, 10, 5, new JapaneseCalendar());
console.log(date); // Outputs: CalendarDate { year: 2023, month: 10, day: 5, calendar: JapaneseCalendar }
Moment.js is a widely-used library for parsing, validating, manipulating, and formatting dates. It offers extensive support for date manipulation and formatting but lacks built-in support for multiple calendar systems and locales compared to @internationalized/date.
date-fns is a modern JavaScript date utility library that provides a comprehensive set of functions for date manipulation and formatting. It is modular and tree-shakeable, making it a lightweight alternative to Moment.js. However, it does not offer the same level of internationalization and calendar support as @internationalized/date.
Luxon is a modern library for working with dates and times in JavaScript. It is built on top of the native JavaScript DateTime API and provides a more comprehensive and easier-to-use interface. Luxon offers good support for internationalization but does not support multiple calendar systems like @internationalized/date.
This package is part of react-spectrum. See the repo for more details.
FAQs
Internationalized calendar, date, and time manipulation utilities
The npm package @internationalized/date receives a total of 1,417,460 weekly downloads. As such, @internationalized/date popularity was classified as popular.
We found that @internationalized/date demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.