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.