Getting Started
Installation
You can install the Date Utils library using npm or yarn:
# Using npm
npm install @gravity-ui/date-utils
# Using yarn
yarn add @gravity-ui/date-utils
Basic Usage
Importing
You can import the specific functions you need:
import {dateTimeParse, dateTime, settings} from '@gravity-ui/date-utils';
Parsing Dates
The dateTimeParse
function is the main entry point for parsing dates. It can parse dates from various formats:
import {dateTimeParse} from '@gravity-ui/date-utils';
// Parse from object
const date1 = dateTimeParse({year: 2021, month: 7, day: 7});
// Parse from array [year, month, day]
const date2 = dateTimeParse([2021, 7, 7]);
// Parse from string
const date3 = dateTimeParse('2021-08-07');
// Parse from timestamp (milliseconds)
const date4 = dateTimeParse(1621708204063);
// Parse relative dates
const now = dateTimeParse('now');
const yesterday = dateTimeParse('now-1d');
const nextMonth = dateTimeParse('now+1M');
const startOfDay = dateTimeParse('now/d');
const startOfNextDay = dateTimeParse('now+1d/d');
Creating DateTime Objects
The dateTime
function creates a DateTime object:
import {dateTime} from '@gravity-ui/date-utils';
// Current date and time
const now = dateTime();
// From a string
const date1 = dateTime({input: '2021-08-07'});
// With a specific format
const date2 = dateTime({input: '2021-08-07', format: 'YYYY-MM-DD'});
// With a specific time zone
const date3 = dateTime({timeZone: 'Asia/Tokyo'});
Formatting Dates
DateTime objects have a format
method for formatting dates:
import {dateTime} from '@gravity-ui/date-utils';
const date = dateTime({input: '2021-08-07T12:30:45'});
// Basic formatting
console.log(date.format('YYYY-MM-DD')); // '2021-08-07'
console.log(date.format('DD/MM/YYYY')); // '07/08/2021'
console.log(date.format('MMMM D, YYYY')); // 'August 7, 2021'
console.log(date.format('HH:mm:ss')); // '12:30:45'
// ISO string
console.log(date.toISOString()); // '2021-08-07T12:30:45.000Z'
Manipulating Dates
DateTime objects provide methods for manipulating dates:
import {dateTime} from '@gravity-ui/date-utils';
const date = dateTime({input: '2021-08-07'});
// Adding time
const tomorrow = date.add(1, 'd');
const nextWeek = date.add(1, 'w');
const nextMonth = date.add(1, 'M');
// Subtracting time
const yesterday = date.subtract(1, 'd');
const lastWeek = date.subtract(1, 'w');
const lastMonth = date.subtract(1, 'M');
// Start/end of time periods
const startOfDay = date.startOf('day');
const endOfMonth = date.endOf('month');
Working with Time Zones
DateTime objects provide methods for working with time zones:
import {dateTime, getTimeZonesList, guessUserTimeZone} from '@gravity-ui/date-utils';
// Get the user's time zone
const userTimeZone = guessUserTimeZone();
// Get a list of all time zones
const timeZones = getTimeZonesList();
// Create a date in a specific time zone
const tokyoDate = dateTime({timeZone: 'Asia/Tokyo'});
// Convert to a different time zone
const newYorkDate = tokyoDate.timeZone('America/New_York');
// Get the time zone offset
console.log(tokyoDate.utcOffset()); // minutes
Working with Relative Dates
The library provides support for parsing relative date expressions:
import {dateTimeParse} from '@gravity-ui/date-utils';
// Current date and time
const now = dateTimeParse('now');
// 1 day ago
const yesterday = dateTimeParse('now-1d');
// 1 day ago + 1 month
const complexDate = dateTimeParse('now-1d+1M');
// Start of today
const startOfToday = dateTimeParse('now/d');
// Start of tomorrow
const startOfTomorrow = dateTimeParse('now+1d/d');
Settings and Localization
The library provides settings for configuration and localization:
import {settings} from '@gravity-ui/date-utils';
// Get current locale
const currentLocale = settings.getLocale(); // default is "en"
// Load and set a new locale
settings.loadLocale('de').then(() => {
settings.setLocale('de');
});
// Customize locale settings
settings.updateLocale({weekStart: 0}); // change first day of week
Next Steps
For more detailed information about the library's features and API, check out the API documentation.