npm.io
0.2.0 • Published 4 years ago

@locale-tools/datetime

Licence
MIT
Version
0.2.0
Deps
0
Size
467 kB
Vulns
0
Weekly
0

@locale-tools/datetime

List of all currencies and a currency conversion tool.

Installation

Install a given package with npm or yarn.

npm install @locale-tools/datetime

yarn add @locale-tools/datetime

Usage

A full list of tz database timezones can be found in src/data/timezones.json

import { timezones } from "@locale-tools/datetime";
Types
// week start day -- both strings and enum valid
enum WeekStartDays {
  FRIDAY = "friday",
  SATURDAY = "saturday",
  SUNDAY = "sunday",
  MONDAY = "monday"
}
type WeekStartDay = `${WeekStartDays}` | WeekStartDays

// hour clock -- both strings and enum valid
enum HourClocks {
  AM_PM = "12hr",
  MILITARY = "24hr",
  MIXED = "mixed"
}
type HourClock = `${HourClocks}` | HourClocks

// timezone object
type Timezone = {
  name: Timezones;
  type: "canonical" | "link";
  linkedTo: string | null;
  utcOffset: string;
  dstOffset: string;
};

// tz database timezone names
enum TZTimezones {}
TZTimezones.windhoek; // "Africa/Windhoek"
Methods
getDateFnsLocale(locale: IETF, { fallbackLocale }): DateFnsLocale

Returns a date-fns locale object to use with date-fns. If a direct match is not found, it'll try to detect the closest locale, otherwise it uses a fallback. The default fallback is en-US.

Parameter Type Description Default
locale IETF IETF locale to match Required
fallbackLocale IETF Fallback IETF locale if no date-fns match found en-US
import { getDateFnsLocale } from "@locale-tools/datetime";

const dateFnsLocaleDirect = getDateFnsLocale("en-AU"); // en-AU locale object

const dateFnsLocaleClosest = getDateFnsLocale("es-PY"); // es locale object (no es-PY date-fns locale object)

const dateFnsLocaleFallback = getDateFnsLocale("aay"); // there is no 'aay' locale or a closest match, so this will returns en-US locale object as a fallback

const dateFnsLocaleFallbackCustom = getDateFnsLocale("aay", {
  fallbackLocale: "en-CA"
}); // will return en-CA as a fallback
getDatePatternForLocale(locale: IETF)

Returns the date format pattern (e.g. 'dd-MM-yyyy') for a given IETF locale.

Parameter Type Description Default
locale IETF IETF locale to get the pattern for Required
import { getDatePatternForLocale } from "@locale-tools/datetime";

const datePattern = getDatePatternForLocale("nl-AW"); // returns "dd-MM-yyyy"
getDateTimeForTimezone({ date, dateTimeFormat, timezone, serverTimezone }): Date

Returns a date formatted and converted to a given timezone.

Parameter Type Description Default
date Date, string, number The date to format Date.now()
dateTimeFormat string Date format pattern Required
timezone TZTimezone Timezone to format to Required
serverTimezone TZTimezone Timezone to compare against UTC
import { getDateTimeForTimezone } from "@locale-tools/datetime";

const dateTimeInTimezone = getDateTimeForTimezone({
  date: 1636911831222,
  dateTimeFormat: "dd-MM-yyyy HH:mm",
  timezone: "Africa/Windhoek"
});
// returns "14-11-2021 19:44"

Keywords