DateTime::Format -- strftime, strptime and other DateTime format related helpers for Perl 6
Perl6
Latest commit f361756 Nov 3, 2016 @supernovus committed on GitHub Merge pull request #13 from jonathanstowe/travis
Fix the Travis configuration

README.md

DateTime::Format

Description

Provides strftime(), strptime() (coming soon), and a few predetermined formats for use with both.

It also comes with some localizations for month and day names.

Convenience subroutines

These are exported by use DateTime::Format

strftime (Str $format, DateTime $dt, :$lang)

Format the DateTime object using the format as specified in the string.

If you don't specify the language, it uses the currently set default.

strptime (Str $timestamp, Str $format, :$lang)

Parse the string using the format as specified in the second string.

If you don't specify the language, it uses the currently set default.

set-datetime-format-lang (Str $code)

Set the default language to use. This can be 'en' (the default language), or any language you have added using one of the Localization libraries.

Formats

DateTime::Format::RFC2822

Parse or Stringify a DateTime in the RFC 2822 format.

  my $ts = 'Tue, 30 Apr 2013 13:02:10 -0700';
  my $rfc = DateTime::Format::RFC2822.new();
  my $dt  = $rfc.parse($ts);
  my $dt2 = $dt.utc();
  say ~$dt2;                   ## Tue, 30 Apr 2013 20:02:10 Z

Localizations

The default localization is English, using the code 'en'. There is no loadable module for English, since it's strings are included by default in the DateTime::Format module.

The following are additional libraries that can add localizations to the DateTime::Format library. The languages will then be immediately usable.

  • DateTime::Format::Lang::FR -- French
  use DateTime::Format::Lang::FR;
  set-datetime-lang('fr');

  ## You can also specify the :lang<fr> parameter to the
  ## strftime(), strptime() subroutines, or the parse() and format()
  ## methods within a DateTime::Format::* subclass such as RFC2822.
  ## This overrides the language for a single call, rather than setting
  ## a default value.

TODO

  • Add strptime().
  • More bundled formats.
  • More localizations, and tests for them.

Authors

Anyone I'm missing that may have contributed, feel free to contact supernovus, and I'll add you to the credits.

License

Artistic License 2.0