smart_date_formatter library

Smart Date Formatter — converts DateTime to human-readable strings.

Quick Start

import 'package:smart_date_formatter/smart_date_formatter.dart';

// Relative time
DateTime.now().subtract(Duration(hours: 2)).timeAgo;  // "2 hours ago"

// Custom format
DateTime.now().format('dd-MM-yyyy');                   // "15-06-2024"

// Localization
SmartDateFormatter(locale: SdfLocale.hi).format(date); // "2 घंटे पहले"

// Natural language parsing
SmartParser.parse("next monday");                       // DateTime

// Auto-refreshing widget
TimeAgoText(date: message.sentAt)

// Countdown widget
CountdownText(target: event.startsAt, format: '{d}d {h}h {m}m {s}s')

// Date ranges
DateRangeHelper.thisMonth()  // DateRange(start, end)

Classes

CalendarEvent
Represents a single calendar event.
CountdownText
A Flutter widget that counts down to a target DateTime and automatically updates every second.
DateBadge
A badge widget that displays a DateTime as a smart label.
DateCalculations
Date calculation and range utilities. No external dependencies — pure Dart.
DateFormatHelper
Lightweight pattern-based date formatter. No external dependencies — pure Dart.
DateGrouper
Groups a list of DateTime values by various time periods.
DateRange
Represents a date range with start and end.
DateRangeHelper
Ready-made date ranges — perfect for database queries, analytics filters, and calendar views.
DateValidationResult
Validation result for SmartDateField.
HolidayHelper
Holiday detection and working day utilities with holiday support.
RecurrenceHelper
Generates recurring DateTime values based on a pattern.
RelativeDateBuilder
A builder widget that provides formatted date strings to its child.
SdfLocale
Built-in locale definitions for SmartDateFormatter.
SmartCalendar
A full-featured calendar widget with month, week, and day views.
SmartCalendarController
Controls a SmartCalendar programmatically.
SmartDateField
A smart Flutter form field for date input.
SmartDateFieldController
Controller for SmartDateField.
SmartDateFormatter
Core formatting logic for SmartDateFormatter
SmartDateText
An all-in-one text widget for displaying DateTime values.
SmartParser
Parses natural language date strings into DateTime objects.
StreakCalculator
Calculates streaks from a list of DateTime values.
TimeAgoText
A Flutter widget that displays a DateTime as a human-readable relative time string — and automatically refreshes itself.

Enums

CalendarView
View modes for SmartCalendar.
DateBadgeStyle
Style options for DateBadge.
EventMarkerStyle
Marker style for events on calendar.
RecurrenceFrequency
Frequency options for RecurrenceHelper.
SmartDateMode
Display mode for SmartDateText.

Extensions

HolidayExtension on DateTime
Extension on DateTime for holiday support.
SmartDateExtension on DateTime
Smart DateTime extensions

Typedefs

RelativeDateWidgetBuilder = Widget Function(BuildContext context, String timeAgo, String calendar, String shortTimestamp, DateTime date)
Signature for RelativeDateBuilder builder function.