Moment.js + moment-timezone
bash
npm install @time-provider/core @time-provider/plugin-moment-timezonets
// production
import { createTimeProvider } from "@time-provider/core";
import { plugin } from "@time-provider/plugin-moment-timezone";
const timeProvider = createTimeProvider.for(plugin).withTimezone("Europe/Paris").create();
timeProvider.clock.utcNow(); // moment.Moment, in UTC
timeProvider.clock.localNow(); // moment.Moment, in Europe/Parists
// tests — same date type, from the /deterministic subpath
import { createTimeProvider } from "@time-provider/core/deterministic";
import { plugin } from "@time-provider/plugin-moment-timezone/deterministic";
const timeProvider = createTimeProvider.for(plugin).asFixed().withFixedTime(0).create();- Date type:
moment.Moment(same as plain Moment.js). - Peer dependencies:
momentandmoment-timezone. - Timezone support: full —
ISystemPlugin/ITimeProvider(orIDeterministicPluginon the/deterministicside), real IANA zones viamoment-timezone's bundled data.
Pick this over plain plugin-moment whenever you need .withTimezone(...)/clock.localNow() and can afford moment-timezone's extra bundle size.