save_points_intl library

A comprehensive, modular, zero-dependency date/time library for Flutter

This library provides 100+ utility functions for working with dates and times in multiple languages without any external dependencies.

Features

  • Date Formatting - 14+ formats with multi-language support
  • Time Formatting - 12/24-hour formats with various options
  • Date Comparisons - Check if dates are today, yesterday, weekend, etc.
  • Date Calculations - Business days, age calculation, periods, etc.
  • Relative Time - "2 hours ago", "in 3 days" format
  • Smart Formatting - Context-aware date/time display
  • Date Parsing - Parse multiple date formats
  • 7 Languages - English, Spanish, French, German, Arabic, Japanese, Chinese
  • Zero Dependencies - Pure Dart implementation

Usage

import 'package:save_points_intl/save_points_intl.dart';

// Date formatting
DateFormatters.formatDateLong(DateTime.now());              // "December 1, 2025"
DateFormatters.formatDateLong(DateTime.now(), 'es_ES');     // "1 de Diciembre de 2025"

// Time formatting
TimeFormatters.formatTime12Hour(DateTime.now());            // "2:30 PM"
TimeFormatters.formatTime24Hour(DateTime.now());            // "14:30"

// Date comparisons
DateComparisons.isToday(DateTime.now());                    // true
DateComparisons.isWeekend(DateTime.now());                  // true/false

// Date calculations
DateCalculations.startOfWeek(DateTime.now());               // Monday 00:00
DateCalculations.addBusinessDays(DateTime.now(), 5);        // +5 weekdays
DateCalculations.calculateAge(birthDate);                   // Age in years

// Relative time
RelativeTime.getRelativeTime(twoHoursAgo);                  // "2 hours ago"
RelativeTime.getRelativeTime(tomorrow, 'es_ES');            // "en 1 día"

// Smart formatting
SmartFormatters.formatSmart(DateTime.now());                // "Today at 2:30 PM"
SmartFormatters.formatSmart(yesterday);                     // "Yesterday at 2:30 PM"

// Date parsing
DateParsers.parseFlexible('2025-12-01');                    // DateTime object
DateParsers.isValidDate('2025-12-01');                      // true

Available Classes

Core Classes

  • DateFormatters - Date formatting functions (14+)
  • TimeFormatters - Time formatting functions (8+)
  • DateComparisons - Date comparison utilities (45+)
  • DateCalculations - Date calculations and timezone utilities (45+)
  • RelativeTime - Relative time and duration formatting (5+)
  • DateParsers - Date parsing utilities (3+)
  • SmartFormatters - Context-aware smart formatting
  • DateTimeConstants - Constants and translations

Modern Features

  • DateTimeExtensions - Extension methods on DateTime for fluent API
  • DateConfig - Global configuration for formatting options
  • DateService - Centralized service class with caching
  • DateFormatterBuilder - Builder pattern for custom formatters
  • DateValidators - Validation utilities
  • Custom Exceptions - InvalidDateException, InvalidFormatPatternException, etc.

Supported Languages

  • English (en, en_US, en_GB)
  • Spanish (es, es_ES)
  • French (fr, fr_FR)
  • German (de, de_DE)
  • Arabic (ar, ar_SA)
  • Japanese (ja, ja_JP)
  • Chinese (zh, zh_CN)

See the README for more examples.

Classes

DateCalculations
Date calculation utilities
DateComparisons
Date comparison utilities
DateConfig
Global configuration for date/time operations
DateFormatterBuilder
Builder for creating custom date/time formatters
DateFormatterPresets
Pre-built formatter configurations
DateFormatters
Date formatting utilities
DateParsers
Date parsing utilities
DateService
Centralized service for date/time operations
DateTimeConstants
Constants and translations for date/time formatting
DateValidators
Validation utilities for date/time operations
RelativeTime
Relative time formatting utilities
SmartFormatters
Smart formatting utilities
TimeFormatters
Time formatting utilities

Enums

DateFormatStyle
Style options for date formatting
TimeFormatStyle
Style options for time formatting

Extensions

DateTimeExtensions on DateTime
Extension methods on DateTime for date/time operations

Exceptions / Errors

DateCalculationException
Exception thrown when a date calculation results in an invalid date
DateException
Base exception class for all date/time related errors
InvalidConfigurationException
Exception thrown when a configuration is invalid
InvalidDateException
Exception thrown when a date string cannot be parsed
InvalidDateRangeException
Exception thrown when a date range is invalid (e.g., start > end)
InvalidFormatPatternException
Exception thrown when a date format pattern is invalid
TimezoneException
Exception thrown when a timezone operation fails
UnsupportedLocaleException
Exception thrown when a locale is not supported