A drop-in replacement for Dart's DateTime class with a const constructor

const-date-time

A drop-in replacement for Dart’s DateTime class with const constructors.

Getting started

Install the package:

flutter pub add const-date-time

or

dart pub add const-date-time

Usage

You can use a ConstDateTime anywhere a DateTime is expected. All major DateTime constructors have a const version.

import 'package:const_date_time/const_date_time.dart';

// const constructors
final year = const ConstDateTime(2022);
final date = const ConstDateTime(2022, 10, 27);
final dateTime = const ConstDateTime(2022, 10, 27, 12, 34, 56, 789, 10);

final yearUtc = const ConstDateTime.utc(2022);
final dateUtc = const ConstDateTime.utc(2022, 10, 27);
final dateTimeUtc = const ConstDateTime.utc(2022, 10, 27, 12, 34, 56, 789, 1011);

final ms = const ConstDateTime.fromMillisecondsSinceEpoch(1666931562000);
final msUtc = const ConstDateTime.fromMillisecondsSinceEpoch(1666931562000, isUtc: true);

final us = const ConstDateTime.fromMicrosecondsSinceEpoch(1666931562000000);
final usUtc = const ConstDateTime.fromMicrosecondsSinceEpoch(1666931562000000, isUtc: true);

You can access the underlying DateTime object directly:

final cdt = const ConstDateTime(2022);
final DateTime dt = cdt.dateTime;
// other getters are available as well:
final int dtYear = dt.year;
final int dtWeekday = dt.weekday;

Don’t forget other DateTime methods too!

final constDateTime = const ConstDateTime(2022);

constDateTime.add(Duration(minutes: 5));
constDateTime.toIso8601String();

Sponsor

Please consider sponsoring my work to ensure this library receives the attention it deserves.

License

const-date-time is released under the MIT License.

GitHub

View Github