Luxon

Modern JavaScript date/time library built by the Moment.js maintainer as Moment's spiritual successor. Luxon uses native Intl API for timezone handling and localization instead of bundled timezone data — significantly smaller bundle than Moment.js. Immutable DateTime objects with a chainable API. Supports ISO durations, intervals, and comprehensive timezone support without separate data files.

Evaluated Mar 06, 2026 (0d ago) v3+
Homepage ↗ Repo ↗ Developer Tools date time timezone immutable moment-successor intl
⚙ Agent Friendliness
68
/ 100
Can an agent use this?
🔒 Security
90
/ 100
Is it safe for agents?
⚡ Reliability
84
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
88
Error Messages
82
Auth Simplicity
100
Rate Limits
100

🔒 Security

TLS Enforcement
90
Auth Strength
90
Scope Granularity
90
Dep. Hygiene
88
Secret Handling
90

Pure computation library with no network access. No security concerns specific to Luxon. Minimal dependencies.

⚡ Reliability

Uptime/SLA
88
Version Stability
85
Breaking Changes
80
Error Recovery
85
AF Security Reliability

Best When

You need comprehensive timezone support and ISO duration handling with a clean immutable API, especially for server-side or backend date processing where bundle size matters less.

Avoid When

You need tiny bundle size — use day.js. You need extensive tree-shaking — use date-fns. Luxon is a complete library not designed for partial imports.

Use Cases

  • Parse, format, and manipulate dates and times in agent applications with full timezone support via Intl API
  • Handle complex scheduling scenarios using Luxon's Interval and Duration classes for time range calculations
  • Format dates for multiple locales in internationalized agent outputs without bundling locale data
  • Parse ISO 8601 strings and convert between timezones in data pipeline agents processing international data
  • Calculate business day differences, relative time ('3 days ago'), and humanized durations for agent reporting

Not For

  • Minimal bundle size requirements — day.js (2KB) or date-fns are smaller; Luxon is ~22KB
  • Environments without Intl API support (old React Native, IE11) — Luxon requires Intl for full timezone functionality
  • Calendar UI components — use a date picker library; Luxon is a computation library only

Interface

REST API
No
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

No authentication — pure computation library.

Pricing

Model: open_source
Free tier: Yes
Requires CC: No

MIT-licensed. Maintained by the Moment.js team.

Agent Metadata

Pagination
none
Idempotent
Full
Retry Guidance
Not documented

Known Gotchas

  • Luxon uses Intl API for timezone support — environments without Intl (old Node.js < 13, some React Native configs) may fail silently on timezone conversions
  • DateTime.fromISO() parses strict ISO 8601 only — non-standard date strings (e.g., 'Jan 1 2024', MM/DD/YYYY) require DateTime.fromFormat() with explicit format token
  • Invalid DateTime objects don't throw — they return an invalid object; always check .isValid before using result to avoid cascading 'invalid' propagation
  • Duration.fromObject({ months: 1 }) is not a fixed number of days — months are variable; adding durations to dates may produce unexpected results near month boundaries
  • Luxon v3 dropped IE11 support and changed some API behaviors — v2 code may behave differently in v3 for edge cases with DST transitions
  • setZone() vs toLocal() vs keepLocalTime: zone conversion semantics differ — setZone changes the zone display without moving the instant; toLocal converts the instant

Alternatives

Full Evaluation Report

Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Luxon.

$99

Scores are editorial opinions as of 2026-03-06.

5215
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered