general_datetime 2.0.0 copy "general_datetime: ^2.0.0" to clipboard
general_datetime: ^2.0.0 copied to clipboard

general_datetime is an package to handle all calendars and dates. The powerful interface can make any custom calendars

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:general_datetime/general_datetime.dart';
import 'package:general_datetime/default_localizations.dart';
import 'package:general_datetime/delegates.dart';

void main() {
  // Create a Gregorian date and convert it to Persian dates:
  PersianDateTime jDate = PersianDateTime.fromDateTime(DateTime(2025, 3, 1));
  print(
      'Converted to Jalali: ${jDate.toString()}'); // e.g. "1403-12-11 00:00:00.000"

  // Create a Jalali date directly (auto-normalization applies):
  PersianDateTime directDate = PersianDateTime(1403, 12, 11, 14, 30);
  print('Direct Jalali: ${directDate.toString()}');

  // Perform arithmetic:
  PersianDateTime futureDate = jDate.add(Duration(days: 5, hours: 3));
  print('Future Date: ${futureDate.toString()}');

  // Compare dates:
  bool isBefore = jDate.isBefore(PersianDateTime(1403, 12, 12));
  print('Is jDate before 1403-12-12? $isBefore');

  // Parse a date string:
  PersianDateTime parsed = PersianDateTime.parse("1403-12-11 14:30:45.123456Z");
  print('Parsed Date: ${parsed.toString()}');

  // Time zone information:
  print('Time Zone Name: ${jDate.timeZoneName}');
  print('Time Zone Offset: ${jDate.timeZoneOffset}');

  runApp(AppStartup());
}

class AppStartup extends StatelessWidget {
  const AppStartup({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: [
        DefaultPersianCalendarMaterialLocalizations.delegate

        // GlobalMaterialLocalizations.delegate,
        // GlobalWidgetsLocalizations.delegate,
        // GlobalCupertinoLocalizations.delegate,
      ],
      locale: Locale('en'),
      supportedLocales: [Locale('en'), Locale('fa')],
      home: Scaffold(
        appBar: AppBar(
          title: Text("Calendar delegate"),
        ),
        body: SingleChildScrollView(
          child: Column(
            children: [
              CalendarDatePicker(
                initialDate: DateTime.now(),
                firstDate: DateTime(1400, 1, 1),
                lastDate: DateTime(2500, 12, 31),
                currentDate: DateTime.now(),
                calendarDelegate: GregorianCalendarDelegate(),
                onDateChanged: (value) {},
              ),
              CalendarDatePicker(
                initialDate: PersianDateTime.now(),
                firstDate: PersianDateTime(1400, 1, 1),
                lastDate: PersianDateTime(1450, 12, 31),
                currentDate: PersianDateTime.now(),
                onDateChanged: (value) {
                  print(value.toString());
                  PersianDateTime jDate = value as PersianDateTime;
                  print(jDate);
                  print(jDate.toDateTime());
                },
                calendarDelegate: PersianCalendarDelegate(),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
3
likes
150
points
227
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

general_datetime is an package to handle all calendars and dates. The powerful interface can make any custom calendars

Homepage
Repository (GitHub)
View/report issues

Topics

#date #time #calendar #utils #service

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on general_datetime