time_machine 0.9.4

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 89

Dart Time Machine

Time Machine is a date and time library for Flutter, Web, and Server with support for timezones, calendars, cultures, formatting and parsing.

Time Machine provides an alternative date and time API over Dart Core. For comparision:

Dart Core API

  • Duration - an amount of time with microsecond precision
  • DateTime - a unique point on the utc_timeline or a point in localtime with microsecond or millisecond precision

Time Machine API

  • Time - an amount of time with nanosecond precision
  • Instant - a unique point on the utc_timeline
  • LocalTime - the time on the clock
  • LocalDate - the date on the calendar
  • LocalDateTime - a location on the clock and calendar
  • Period - amount of time on the clock and calendar
  • Offset - the timezone offset from the utc_timeline
  • DateTimeZone - a mapping between the utc_timeline, and clock and calendar locations
  • ZonedDateTime - a unique point on the utc_timeline and a location on the clock and calendar
  • Culture - formatting and parsing rules specific to a locale

Time Machine's Goals

  • Flexibility - multiple representations of time to fit different use cases
  • Consistency - works the same across all platforms
  • Testable - easy to test your date and time dependent code
  • Clarity - clear, concise, and intuitive
  • Easy - the library should do the hard things for you

The last two/three? are generic library goals.

Time Machine is a port of Noda Time; use it for all your .NET needs.

Example Code:

// Sets up timezone and culture information
await TimeMachine.initialize();
print('Hello, ${DateTimeZone.local} from the Dart Time Machine!\n');

var tzdb = await DateTimeZoneProviders.tzdb;
var paris = await tzdb["Europe/Paris"];

var now = Instant.now();

print('Basic');
print('UTC Time: $now');
print('Local Time: ${now.inLocalZone()}');
print('Paris Time: ${now.inZone(paris)}\n');

print('Formatted');
print('UTC Time: ${now.toString('dddd yyyy-MM-dd HH:mm')}');
print('Local Time: ${now.inLocalZone().toString('dddd yyyy-MM-dd HH:mm')}\n');

var french = await Cultures.getCulture('fr-FR');
print('Formatted and French ($french)');
print('UTC Time: ${now.toString('dddd yyyy-MM-dd HH:mm', french)}');
print('Local Time: ${now.inLocalZone().toString('dddd yyyy-MM-dd HH:mm', french)}\n');

print('Parse French Formatted ZonedDateTime');

// without the 'z' parsing will be forced to interpret the timezone as UTC
var localText = now
    .inLocalZone()
    .toString('dddd yyyy-MM-dd HH:mm z', french);

var localClone = ZonedDateTimePattern
    .createWithCulture('dddd yyyy-MM-dd HH:mm z', french)
    .parse(localText);

print(localClone.value);

VM

selection_116

Flutter

selection_117

Web (Dart2JS and DDC)

selection_118

All unit tests pass on DartVM and DartWeb (just Chrome at this time). Tests have been run on preview versions of Dart2, but the focus is on DartStable, and they are not run before every pub publish. The public API is stabilizing -- mostly focusing on taking C# idiomatic code and making it Dart idiomatic code, so I wouldn't expect any over zealous changes. This is a preview release -- but, I'd feel comfortable using it. (Author Stamp of Approval!)

Documentation was ported, but some things changed for Dart and the documentation is being slowly updated (and we need an additional automated formatting pass).

Don't use any functions annotated with @internal. As of v0.3 you should not find any, but if you do, let me know.

Todo (before v1):

  • [x] Port Noda Time
  • [x] Unit tests passing in DartVM
  • [ ] Dartification of the API
    • [X] First pass style updates
    • [X] Second pass ergonomics updates
    • [X] Synchronous TZDB timezone provider
    • [ ] Review all I/O and associated classes and their structure
    • [ ] Simplify the API and make the best use of named constructors
  • [X] Non-Gregorian/Julian calendar systems
  • [X] Text formatting and Parsing
  • [X] Remove XML tags from documentation and format them for pub (human second pass still needed)
  • [X] Implement Dart4Web features
  • [X] Unit tests passing in DartWeb
  • [ ] Fix DartDoc Formatting
  • [ ] Create simple website with examples (at minimal a good set of examples under the examples directory)

External data: Timezones (TZDB via Noda Time) and Culture (ICU via BCL) are produced by a C# tool that is not included in this repository. The goal is to port all this functionality to Dart, the initial tool was created for bootstrapping -- and guaranteeing that our data is exactly the same thing that Noda Time would see (to ease porting).

Future Todo:

  • [ ] Produce our own TSDB files
  • [ ] Produce our own Culture files
  • [ ] Benchmarking & Optimizing Library for Dart

Flutter Specific Notes

You'll need this entry in your pubspec.yaml.

# The following section is specific to Flutter.
flutter:
  assets:
    - packages/time_machine/data/cultures/cultures.bin
    - packages/time_machine/data/tzdb/tzdb.bin

Your initialization function will look like this:

import 'package:flutter/services.dart';

// TimeMachine discovers your TimeZone heuristically (it's actually pretty fast).
await TimeMachine.initialize({rootBundle: rootBundle});

Once flutter gets Isolate.resolvePackageUri functionality, we'll be able to merge VM and the Flutter code paths and no asset entry and no special import will be required. It would look just like the VM example.

Or with: https://pub.dartlang.org/packages/flutter_native_timezone

import 'package:flutter/services.dart';

// you can get Timezone information directly from the native interface with flutter_native_timezone
await TimeMachine.initialize({rootBundle: rootBundle, timeZone: await Timezone.getLocalTimezone()});

DDC Specific Notes

toString on many of the classes will not propagate patternText and culture parameters. Instant and ZonedDateTime currently have toStringDDC functions available to remedy this.

This also works:

dynamic foo = new Foo();
var foo = new Foo() as dynamic;
(foo as dynamic).toString(patternText, culture);

We learned in Issue:33876 that dynamic code uses a different flow path. Wrapping your code as dynamic will allow toString() to work normally. It will unfortunately ruin your intellisense.

See Issue:33876 for more information. The fix exists, now we just wait for it to hit a live build.

toStringDDC instead of toStringFormatted to attempt to get a negative contagion coefficient. If you are writing on DartStable today and you need some extra string support because of this bug, let me know.

Using with Dart 1.24.3

If you are using TimeMachine for Dart 1.24.3, you'll want to depend directly on 0.7.1 or earlier.

dependencies:
  time_machine: "0.7.1"

Changelog

0.9.4

  • Many API changes.
  • Fix for Dart 2.0.

0.9.1

  • Continued the API normalization work; removed add*, minus* where it did not add any performance gains. Time plus\minus --> add\subtract, added an abs method.
  • LocalDateTime\LocalDate\LocalTime added periodUntil\periodSince, removed difference, made static method difference from differenceBetween
    • same with OffsetDateTime except time vs period

0.9.0

  • Added a LocalDate.today(), LocalDateTime.now(), LocalTime.timeOfToday() constructors.
  • Refined Local* api's to be more like dart:core.DateTime
    • Did the same with Instant, ZonedDateTime, OffsetDateTime, Offset, Period

0.8.5

  • Constructor is now LocalDateTime.localDateAtTime(LocalDate, LocalTime)
  • Formatted much API Documentation.
  • Removed operator based dynamic dispatch from all operator - methods. Many times it makes sense to for example, subtract to do this, end_date - start_date = delta_time and to do this, end_date - delta_time = start_date but only makes sense for addition to do this, start_date + delta_time = end_date, you'd never do this, start_date + end_date = delta_time (doesn't really make sense) -- so, the operator - methods have been defaulted to do the same operation as the operator + methods. If Dart 3 gets compile time dispatch, these other methods will be re-enabled.

0.8.4

  • Bugfix for Flutter.

0.8.3

  • Removed all the Period.from* constructors, added a named constructor, constructor const Period({this.years: 0, this.months: 0, this.weeks: 0, this.days: 0, this.hours: 0, this.minutes: 0, this.seconds: 0, this.milliseconds: 0, this.microseconds: 0, this.nanoseconds: 0}); instead of Period.fromYears(int years).
  • Moved collection: "^1.14.10" to collection: "^1.14.6" in order to satisfy Flutter unit testing requirements. time_machine can not be unit tested directly in flutter because of a breaking change between matcher: ^0.12.2+1 and matcher: 0.12.3 with regards to TypeMatcher going from an abstract non-instanced class to a regular instanced class. See flutter_test/pubspec.yaml.

0.8.2

  • Instant constructors condensed: Instant.utc, Instant, Instant.julianDate, Instant.dateTime, Instant.epochTime
  • Removed from from a lot of constructors, heavily redundant (well, maybe not so redundant with the loss of new)
  • Added a timeZone override to TimeMachine.init() so you can supply a local DateTimeZone to Flutter if you something like flutter_native_timezone loaded as well.
  • CalendarSystem cleaned up.

0.8.0

  • Dart 2.0 ready to go. TimeMachine 0.7.1 was the last version that will work on Dart 1.24.3.
    • Added a lot of BigInt code, there is no going back now. Added Time.canNanosecondsBeInteger, Time.fromBigIntNanoseconds(), Time.totalNanosecondsAsBigInt
    • The Dart2JS example compiled sized dropped by about 11%.

0.7.1

  • No more dart analysis errors on 1.24.3.
    • Refactored away the port-helper KeyValuePair and OutBox classes.
    • Fixed (or annotated) all unused variables, fields, elements, and imports issues.

0.7.0

  • Updated LocalDateTime.at() to reflect the LocalTime constructor update.
    • note: renamed LocalDateTime.at() to LocalDateTime() and then renamed the original LocalDateTime(LocalDate, LocalTime) to LocalDateTime.combine(LocalDate, LocalTime)
  • Added Badi, Coptic, Hebrew, Islamic, Persian, and UmAlQura calendars.
    • Tested sat on VM/JS.

0.6.0

  • Removed the concept of ticks and replaced all the functions with microseconds; Rational: the only place ticks shows up as a concept is here https://api.dartlang.org/stable/1.24.3/dart-core/Stopwatch/elapsedTicks.html; ticks from .NET-land is 100 nanosecond unit of time; ticks from dart is based on a dynamic frequency number, on my machines it's 1 us in the browser and 1 ns in the vm.
  • Simplified LocalTime constructors; now one generic + one that takes a Time sinceMidnight. (from 7 initial)
  • Added microsecond/millisecond logic around DateTime conversions wrt Platform
  • Cleaned up Offset - removed subsecond constructors, since Offset can't be subsecond, and made the fromSeconds constructor the default constructor.

0.5.0

  • Major API Changes (Sorry!)
  • Span (denotatively and connotatively wrong) to Time (to just connotatively wrong)
  • text_patterns moved to time_machine_text_patterns from time_machine global (still thinking about what things should be not visible by default)

0.4.1

  • Missed a logging reference (took it out).

0.4

  • DartVM mirrors based unit tests can now be used to compute DartWeb non-mirrors based unit tests. All web-compatible unit tests are now passing, and TimeMachine is safe for use when compiling via Dart2JS.

0.3

  • Coalesced imports into a single import and all @internal functionality is now hidden.

0.2.2

  • Fixed bug introduced in 0.2.1; (Conditional Imports are hard); dart.library.js seems to evaluate to false in DDC stable. Put back as dart.library.html.

0.2.1

  • Fixed bug introduced in 0.2.0 causing TimeMachine.Initialize() to not fully await.

0.2.0

  • No more specific imports for your platform. Flutter usage was streamlined significantly.

0.1.1

  • Broke some things while making this work on many platforms. Fixed them (still need to do unit tests on js).

0.1.0

  • Made some changes to try and less confuse Pana.

0.0.4

  • Now works on Flutter, Web, and VM!

0.0.2

  • Many things have been Dartified. Constructors consolidated, names are lowercased, @private usage heavily reduced.

0.0.1

  • Initial version.

example/example.dart

// Copyright 2018 The Time Machine Authors. All rights reserved.
// Use of this source code is governed by the Apache License 2.0, as found in the LICENSE.txt file.

import 'dart:async';

import 'package:time_machine/time_machine.dart';
import 'package:time_machine/time_machine_text_patterns.dart';

Future main() async {
  try {
    // Sets up timezone and culture information
    await TimeMachine.initialize();
    print('Hello, ${DateTimeZone.local} from the Dart Time Machine!\n');

    var tzdb = await DateTimeZoneProviders.tzdb;
    var paris = await tzdb["Europe/Paris"];

    var now = Instant.now();

    print('Basic');
    print('UTC Time: $now');
    print('Local Time: ${now.inLocalZone()}');
    print('Paris Time: ${now.inZone(paris)}\n');

    print('Formatted');
    print('UTC Time: ${now.toString('dddd yyyy-MM-dd HH:mm')}');
    print('Local Time: ${now.inLocalZone().toString('dddd yyyy-MM-dd HH:mm')}\n');

    var french = await Cultures.getCulture('fr-FR');
    print('Formatted and French ($french)');
    print('UTC Time: ${now.toString('dddd yyyy-MM-dd HH:mm', french)}');
    print('Local Time: ${now.inLocalZone().toString('dddd yyyy-MM-dd HH:mm', french)}\n');

    print('Parse French Formatted ZonedDateTime');

    // without the 'z' parsing will be forced to interpret the timezone as UTC
    var localText = now
        .inLocalZone()
        .toString('dddd yyyy-MM-dd HH:mm z', french);

    var localClone = ZonedDateTimePattern
        .createWithCulture('dddd yyyy-MM-dd HH:mm z', french)
        .parse(localText);

    print(localClone.value);
    
  }
  catch (error, stack) {
    print(error);
    print(stack);
  }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  time_machine: ^0.9.4

2. Install it

You can install packages from the command line:

with pub:


$ pub get

with Flutter:


$ flutter packages get

Alternatively, your editor might support pub get or flutter packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:time_machine/time_machine.dart';
  
Version Uploaded Documentation Archive
0.9.4 Aug 6, 2018 Go to the documentation of time_machine 0.9.4 Download time_machine 0.9.4 archive
0.9.3 Aug 4, 2018 Go to the documentation of time_machine 0.9.3 Download time_machine 0.9.3 archive
0.9.2 Aug 1, 2018 Go to the documentation of time_machine 0.9.2 Download time_machine 0.9.2 archive
0.9.1 Jul 26, 2018 Go to the documentation of time_machine 0.9.1 Download time_machine 0.9.1 archive
0.9.0 Jul 25, 2018 Go to the documentation of time_machine 0.9.0 Download time_machine 0.9.0 archive
0.8.5 Jul 22, 2018 Go to the documentation of time_machine 0.8.5 Download time_machine 0.8.5 archive
0.8.4 Jul 22, 2018 Go to the documentation of time_machine 0.8.4 Download time_machine 0.8.4 archive
0.8.3 Jul 22, 2018 Go to the documentation of time_machine 0.8.3 Download time_machine 0.8.3 archive
0.8.2 Jul 16, 2018 Go to the documentation of time_machine 0.8.2 Download time_machine 0.8.2 archive
0.8.1 Jul 15, 2018 Go to the documentation of time_machine 0.8.1 Download time_machine 0.8.1 archive

All 27 versions...

Popularity:
Describes how popular the package is relative to other packages. [more]
80
Health:
Code health derived from static analysis. [more]
97
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
89
Learn more about scoring.

We analyzed this package on Oct 10, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0
  • pana: 0.12.4

Platforms

Detected platforms: Flutter, web, other

No platform restriction found in primary library package:time_machine/time_machine.dart.

Health suggestions

Fix lib/src/text/duration_pattern_parser.dart. (-2.48 points)

Analysis of lib/src/text/duration_pattern_parser.dart reported 5 hints:

line 64 col 18: 'nanosecondOfDay' is deprecated and shouldn't be used.

line 100 col 22: 'nanosecondOfFloorDay' is deprecated and shouldn't be used.

line 116 col 34: 'nanosecondOfDay' is deprecated and shouldn't be used.

line 136 col 46: 'nanosecondOfFloorDay' is deprecated and shouldn't be used.

line 139 col 35: 'nanosecondOfDay' is deprecated and shouldn't be used.

Fix lib/src/localdatetime.dart. (-0.50 points)

Analysis of lib/src/localdatetime.dart reported 1 hint:

line 43 col 59: 'nanosecondOfDay' is deprecated and shouldn't be used.

Fix lib/src/localinstant.dart. (-0.50 points)

Analysis of lib/src/localinstant.dart reported 1 hint:

line 162 col 87: 'nanosecondOfDay' is deprecated and shouldn't be used.

Fix additional 146 files with analysis or formatting issues.

Additional issues in the following files:

  • lib/src/ambiguous_time_error.dart (Run dartfmt to format lib/src/ambiguous_time_error.dart.)
  • lib/src/annual_date.dart (Run dartfmt to format lib/src/annual_date.dart.)
  • lib/src/calendar_ordinal.dart (Run dartfmt to format lib/src/calendar_ordinal.dart.)
  • lib/src/calendar_system.dart (Run dartfmt to format lib/src/calendar_system.dart.)
  • lib/src/calendars/badi_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/badi_yearmonthday_calculator.dart.)
  • lib/src/calendars/coptic_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/coptic_yearmonthday_calculator.dart.)
  • lib/src/calendars/era.dart (Run dartfmt to format lib/src/calendars/era.dart.)
  • lib/src/calendars/era_calculator.dart (Run dartfmt to format lib/src/calendars/era_calculator.dart.)
  • lib/src/calendars/fixed_month_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/fixed_month_yearmonthday_calculator.dart.)
  • lib/src/calendars/gj_era_calculator.dart (Run dartfmt to format lib/src/calendars/gj_era_calculator.dart.)
  • lib/src/calendars/gj_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/gj_yearmonthday_calculator.dart.)
  • lib/src/calendars/gregorian_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/gregorian_yearmonthday_calculator.dart.)
  • lib/src/calendars/hebrew_month_converter.dart (Run dartfmt to format lib/src/calendars/hebrew_month_converter.dart.)
  • lib/src/calendars/hebrew_scriptural_calculator.dart (Run dartfmt to format lib/src/calendars/hebrew_scriptural_calculator.dart.)
  • lib/src/calendars/hebrew_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/hebrew_yearmonthday_calculator.dart.)
  • lib/src/calendars/islamic_epoch.dart (Run dartfmt to format lib/src/calendars/islamic_epoch.dart.)
  • lib/src/calendars/islamic_leap_year_pattern.dart (Run dartfmt to format lib/src/calendars/islamic_leap_year_pattern.dart.)
  • lib/src/calendars/islamic_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/islamic_yearmonthday_calculator.dart.)
  • lib/src/calendars/julian_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/julian_yearmonthday_calculator.dart.)
  • lib/src/calendars/persian_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/persian_yearmonthday_calculator.dart.)
  • lib/src/calendars/regular_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/regular_yearmonthday_calculator.dart.)
  • lib/src/calendars/simple_week_year_rule.dart (Run dartfmt to format lib/src/calendars/simple_week_year_rule.dart.)
  • lib/src/calendars/single_era_calculator.dart (Run dartfmt to format lib/src/calendars/single_era_calculator.dart.)
  • lib/src/calendars/time_machine_calendars.dart (Run dartfmt to format lib/src/calendars/time_machine_calendars.dart.)
  • lib/src/calendars/um_al_qura_yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/um_al_qura_yearmonthday_calculator.dart.)
  • lib/src/calendars/week_rule.dart (Run dartfmt to format lib/src/calendars/week_rule.dart.)
  • lib/src/calendars/week_year_rules.dart (Run dartfmt to format lib/src/calendars/week_year_rules.dart.)
  • lib/src/calendars/year_start_cache_entry.dart (Run dartfmt to format lib/src/calendars/year_start_cache_entry.dart.)
  • lib/src/calendars/yearmonthday_calculator.dart (Run dartfmt to format lib/src/calendars/yearmonthday_calculator.dart.)
  • lib/src/clock.dart (Run dartfmt to format lib/src/clock.dart.)
  • lib/src/date_adjusters.dart (Run dartfmt to format lib/src/date_adjusters.dart.)
  • lib/src/date_interval.dart (Run dartfmt to format lib/src/date_interval.dart.)
  • lib/src/datetimezone.dart (Run dartfmt to format lib/src/datetimezone.dart.)
  • lib/src/datetimezone_provider.dart (Run dartfmt to format lib/src/datetimezone_provider.dart.)
  • lib/src/dayofweek.dart (Run dartfmt to format lib/src/dayofweek.dart.)
  • lib/src/duration.dart (Run dartfmt to format lib/src/duration.dart.)
  • lib/src/fields/date_period_fields.dart (Run dartfmt to format lib/src/fields/date_period_fields.dart.)
  • lib/src/fields/fixed_length_date_period_field.dart (Run dartfmt to format lib/src/fields/fixed_length_date_period_field.dart.)
  • lib/src/fields/months_period_field.dart (Run dartfmt to format lib/src/fields/months_period_field.dart.)
  • lib/src/fields/time_machine_fields.dart (Run dartfmt to format lib/src/fields/time_machine_fields.dart.)
  • lib/src/fields/time_period_field.dart (Run dartfmt to format lib/src/fields/time_period_field.dart.)
  • lib/src/fields/years_period_field.dart (Run dartfmt to format lib/src/fields/years_period_field.dart.)
  • lib/src/instant.dart (Run dartfmt to format lib/src/instant.dart.)
  • lib/src/interval.dart (Run dartfmt to format lib/src/interval.dart.)
  • lib/src/localdate.dart (Run dartfmt to format lib/src/localdate.dart.)
  • lib/src/localtime.dart (Run dartfmt to format lib/src/localtime.dart.)
  • lib/src/offset.dart (Run dartfmt to format lib/src/offset.dart.)
  • lib/src/offset_date.dart (Run dartfmt to format lib/src/offset_date.dart.)
  • lib/src/offset_datetime.dart (Run dartfmt to format lib/src/offset_datetime.dart.)
  • lib/src/offset_time.dart (Run dartfmt to format lib/src/offset_time.dart.)
  • lib/src/period.dart (Run dartfmt to format lib/src/period.dart.)
  • lib/src/period_builder.dart (Run dartfmt to format lib/src/period_builder.dart.)
  • lib/src/period_units.dart (Run dartfmt to format lib/src/period_units.dart.)
  • lib/src/platforms/platform_io.dart (Run dartfmt to format lib/src/platforms/platform_io.dart.)
  • lib/src/platforms/vm.dart (Run dartfmt to format lib/src/platforms/vm.dart.)
  • lib/src/platforms/web.dart (Run dartfmt to format lib/src/platforms/web.dart.)
  • lib/src/skipped_time_error.dart (Run dartfmt to format lib/src/skipped_time_error.dart.)
  • lib/src/text/annual_date_pattern.dart (Run dartfmt to format lib/src/text/annual_date_pattern.dart.)
  • lib/src/text/annual_date_pattern_parser.dart (Run dartfmt to format lib/src/text/annual_date_pattern_parser.dart.)
  • lib/src/text/composite_pattern_builder.dart (Run dartfmt to format lib/src/text/composite_pattern_builder.dart.)
  • lib/src/text/delegates.dart (Run dartfmt to format lib/src/text/delegates.dart.)
  • lib/src/text/duration_pattern.dart (Run dartfmt to format lib/src/text/duration_pattern.dart.)
  • lib/src/text/fixed_format_info_pattern_parser.dart (Run dartfmt to format lib/src/text/fixed_format_info_pattern_parser.dart.)
  • lib/src/text/format_helper.dart (Run dartfmt to format lib/src/text/format_helper.dart.)
  • lib/src/text/globalization/culture.dart (Run dartfmt to format lib/src/text/globalization/culture.dart.)
  • lib/src/text/globalization/culture_io.dart (Run dartfmt to format lib/src/text/globalization/culture_io.dart.)
  • lib/src/text/globalization/datetime_format_info.dart (Run dartfmt to format lib/src/text/globalization/datetime_format_info.dart.)
  • lib/src/text/globalization/pattern_resources.dart (Run dartfmt to format lib/src/text/globalization/pattern_resources.dart.)
  • lib/src/text/globalization/time_machine_format_info.dart (Run dartfmt to format lib/src/text/globalization/time_machine_format_info.dart.)
  • lib/src/text/globalization/time_machine_globalization.dart (Run dartfmt to format lib/src/text/globalization/time_machine_globalization.dart.)
  • lib/src/text/i_partial_pattern.dart (Run dartfmt to format lib/src/text/i_partial_pattern.dart.)
  • lib/src/text/i_pattern.dart (Run dartfmt to format lib/src/text/i_pattern.dart.)
  • lib/src/text/instant_pattern.dart (Run dartfmt to format lib/src/text/instant_pattern.dart.)
  • lib/src/text/instant_pattern_parser.dart (Run dartfmt to format lib/src/text/instant_pattern_parser.dart.)
  • lib/src/text/invalid_pattern_error.dart (Run dartfmt to format lib/src/text/invalid_pattern_error.dart.)
  • lib/src/text/localdate_pattern.dart (Run dartfmt to format lib/src/text/localdate_pattern.dart.)
  • lib/src/text/localdate_pattern_parser.dart (Run dartfmt to format lib/src/text/localdate_pattern_parser.dart.)
  • lib/src/text/localdatetime_pattern.dart (Run dartfmt to format lib/src/text/localdatetime_pattern.dart.)
  • lib/src/text/localdatetime_pattern_parser.dart (Run dartfmt to format lib/src/text/localdatetime_pattern_parser.dart.)
  • lib/src/text/localtime_pattern.dart (Run dartfmt to format lib/src/text/localtime_pattern.dart.)
  • lib/src/text/localtime_pattern_parser.dart (Run dartfmt to format lib/src/text/localtime_pattern_parser.dart.)
  • lib/src/text/offset_date_pattern.dart (Run dartfmt to format lib/src/text/offset_date_pattern.dart.)
  • lib/src/text/offset_date_pattern_parser.dart (Run dartfmt to format lib/src/text/offset_date_pattern_parser.dart.)
  • lib/src/text/offset_datetime_pattern.dart (Run dartfmt to format lib/src/text/offset_datetime_pattern.dart.)
  • lib/src/text/offset_datetime_pattern_parser.dart (Run dartfmt to format lib/src/text/offset_datetime_pattern_parser.dart.)
  • lib/src/text/offset_pattern.dart (Run dartfmt to format lib/src/text/offset_pattern.dart.)
  • lib/src/text/offset_pattern_parser.dart (Run dartfmt to format lib/src/text/offset_pattern_parser.dart.)
  • lib/src/text/offset_time_pattern.dart (Run dartfmt to format lib/src/text/offset_time_pattern.dart.)
  • lib/src/text/offset_time_pattern_parser.dart (Run dartfmt to format lib/src/text/offset_time_pattern_parser.dart.)
  • lib/src/text/parse_result.dart (Run dartfmt to format lib/src/text/parse_result.dart.)
  • lib/src/text/patterns/date_pattern_helper.dart (Run dartfmt to format lib/src/text/patterns/date_pattern_helper.dart.)
  • lib/src/text/patterns/i_pattern_parser.dart (Run dartfmt to format lib/src/text/patterns/i_pattern_parser.dart.)
  • lib/src/text/patterns/pattern_cursor.dart (Run dartfmt to format lib/src/text/patterns/pattern_cursor.dart.)
  • lib/src/text/patterns/pattern_fields.dart (Run dartfmt to format lib/src/text/patterns/pattern_fields.dart.)
  • lib/src/text/patterns/stepped_pattern_builder.dart (Run dartfmt to format lib/src/text/patterns/stepped_pattern_builder.dart.)
  • lib/src/text/patterns/time_pattern_helper.dart (Run dartfmt to format lib/src/text/patterns/time_pattern_helper.dart.)
  • lib/src/text/period_pattern.dart (Run dartfmt to format lib/src/text/period_pattern.dart.)
  • lib/src/text/text_cursor.dart (Run dartfmt to format lib/src/text/text_cursor.dart.)
  • lib/src/text/text_error_messages.dart (Run dartfmt to format lib/src/text/text_error_messages.dart.)
  • lib/src/text/unparsable_value_error.dart (Run dartfmt to format lib/src/text/unparsable_value_error.dart.)
  • lib/src/text/value_cursor.dart (Run dartfmt to format lib/src/text/value_cursor.dart.)
  • lib/src/text/zoneddatetime_pattern.dart (Run dartfmt to format lib/src/text/zoneddatetime_pattern.dart.)
  • lib/src/text/zoneddatetime_pattern_parser.dart (Run dartfmt to format lib/src/text/zoneddatetime_pattern_parser.dart.)
  • lib/src/time_adjusters.dart (Run dartfmt to format lib/src/time_adjusters.dart.)
  • lib/src/time_constants.dart (Run dartfmt to format lib/src/time_constants.dart.)
  • lib/src/time_machine_internal.dart (Run dartfmt to format lib/src/time_machine_internal.dart.)
  • lib/src/timezones/cached_datetimezone.dart (Run dartfmt to format lib/src/timezones/cached_datetimezone.dart.)
  • lib/src/timezones/caching_zoneinterval_map.dart (Run dartfmt to format lib/src/timezones/caching_zoneinterval_map.dart.)
  • lib/src/timezones/datetimezone_cache.dart (Run dartfmt to format lib/src/timezones/datetimezone_cache.dart.)
  • lib/src/timezones/datetimezone_notfound_error.dart (Run dartfmt to format lib/src/timezones/datetimezone_notfound_error.dart.)
  • lib/src/timezones/delegates.dart (Run dartfmt to format lib/src/timezones/delegates.dart.)
  • lib/src/timezones/fixed_datetimezone.dart (Run dartfmt to format lib/src/timezones/fixed_datetimezone.dart.)
  • lib/src/timezones/invalid_datetimezone_source_error.dart (Run dartfmt to format lib/src/timezones/invalid_datetimezone_source_error.dart.)
  • lib/src/timezones/partial_zoneinterval_map.dart (Run dartfmt to format lib/src/timezones/partial_zoneinterval_map.dart.)
  • lib/src/timezones/precalculated_datetimezone.dart (Run dartfmt to format lib/src/timezones/precalculated_datetimezone.dart.)
  • lib/src/timezones/resolvers.dart (Run dartfmt to format lib/src/timezones/resolvers.dart.)
  • lib/src/timezones/single_zoneinterval_map.dart (Run dartfmt to format lib/src/timezones/single_zoneinterval_map.dart.)
  • lib/src/timezones/standard_daylight_alternating_map.dart (Run dartfmt to format lib/src/timezones/standard_daylight_alternating_map.dart.)
  • lib/src/timezones/time_machine_timezones.dart (Run dartfmt to format lib/src/timezones/time_machine_timezones.dart.)
  • lib/src/timezones/transition.dart (Run dartfmt to format lib/src/timezones/transition.dart.)
  • lib/src/timezones/transition_mode.dart (Run dartfmt to format lib/src/timezones/transition_mode.dart.)
  • lib/src/timezones/tzdb_datetimezone_source.dart (Run dartfmt to format lib/src/timezones/tzdb_datetimezone_source.dart.)
  • lib/src/timezones/tzdb_io.dart (Run dartfmt to format lib/src/timezones/tzdb_io.dart.)
  • lib/src/timezones/tzdb_zone_1970_location.dart (Run dartfmt to format lib/src/timezones/tzdb_zone_1970_location.dart.)
  • lib/src/timezones/tzdb_zone_location.dart (Run dartfmt to format lib/src/timezones/tzdb_zone_location.dart.)
  • lib/src/timezones/zone_equality_comparer.dart (Run dartfmt to format lib/src/timezones/zone_equality_comparer.dart.)
  • lib/src/timezones/zone_local_mapping.dart (Run dartfmt to format lib/src/timezones/zone_local_mapping.dart.)
  • lib/src/timezones/zone_recurrence.dart (Run dartfmt to format lib/src/timezones/zone_recurrence.dart.)
  • lib/src/timezones/zone_year_offset.dart (Run dartfmt to format lib/src/timezones/zone_year_offset.dart.)
  • lib/src/timezones/zoneinterval.dart (Run dartfmt to format lib/src/timezones/zoneinterval.dart.)
  • lib/src/timezones/zoneinterval_map.dart (Run dartfmt to format lib/src/timezones/zoneinterval_map.dart.)
  • lib/src/utility/binary_reader.dart (Run dartfmt to format lib/src/utility/binary_reader.dart.)
  • lib/src/utility/cache.dart (Run dartfmt to format lib/src/utility/cache.dart.)
  • lib/src/utility/compare_info.dart (Run dartfmt to format lib/src/utility/compare_info.dart.)
  • lib/src/utility/hashcode.dart (Run dartfmt to format lib/src/utility/hashcode.dart.)
  • lib/src/utility/invalid_time_data_error.dart (Run dartfmt to format lib/src/utility/invalid_time_data_error.dart.)
  • lib/src/utility/preconditions.dart (Run dartfmt to format lib/src/utility/preconditions.dart.)
  • lib/src/utility/string_compare.dart (Run dartfmt to format lib/src/utility/string_compare.dart.)
  • lib/src/utility/string_format.dart (Run dartfmt to format lib/src/utility/string_format.dart.)
  • lib/src/utility/time_machine_utilities.dart (Run dartfmt to format lib/src/utility/time_machine_utilities.dart.)
  • lib/src/utility/utilities.dart (Run dartfmt to format lib/src/utility/utilities.dart.)
  • lib/src/yearmonthday.dart (Run dartfmt to format lib/src/yearmonthday.dart.)
  • lib/src/yearmonthday_and_calendar.dart (Run dartfmt to format lib/src/yearmonthday_and_calendar.dart.)
  • lib/src/zoned_clock.dart (Run dartfmt to format lib/src/zoned_clock.dart.)
  • lib/src/zoneddatetime.dart (Run dartfmt to format lib/src/zoneddatetime.dart.)
  • lib/time_machine.dart (Run dartfmt to format lib/time_machine.dart.)

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.60.0 <3.0.0
collection ^1.14.6 1.14.11
meta ^1.1.5 1.1.6
resource ^2.1.4 2.1.5
Transitive dependencies
typed_data 1.1.6
Dev dependencies
matcher ^0.12.3
test ^1.2.0