/tempus

Handy tools for parsing, manipulating and displaying DateTimes in Dart.

Primary LanguageDartMIT LicenseMIT

tempus Pub Build Status

An implementation of some Moment.js features for parsing, manipulates and displaying dates in Dart.

Usage

A simple usage example:

import 'package:tempus/tempus.dart';

main() {
    Duration secondsToAdd = new Duration(seconds: 10);
    DateTime dateForComparison = new DateTime.now().add(secondsToAdd);
    Tempus tempus = new Tempus();

    // Will print "in a few seconds"
    print(tempus.from(Tempus.fromDate(dateForComparison)));

    // Will generate a list with 35 DateTimes, perfect for creating
    // calendar grids. By default starts on Sunday, can be Monday.
    DateTime randomDate = new DateTime(2018, 10);
    List<DateTime> dateGrid = Tempus.daysInMonth(randomDate, startOnMonday: true);
}

Locales

Set the locale for all usages of Tempus:

Tempus.globalLocale(new LocaleDE());

Set the locale only for the current instance of Tempus:

Tempus tempus = new Tempus.now().locale(new LocaleDE());

Adding your own locale:

Just create a class that implements ILocale and assign that to your Tempus instance or set it globally.

Overwriting existing locales:

class ShortLocaleEn extends LocaleEN {
  String get seconds => '%is';

  String get aMinute => '%im';
  String get minutes => '%im';

  String get anHour => '%ih';
  String get hours => '%ih';

  String get aDay => '%id';
  String get days => '%id';
}

Features and bugs

Please file feature requests and bugs at the issue tracker.

Credits

This package draws inspiration and code from rinukkusu/simple_moment and apptreesoftware/date_utils.