NAME

Astro::App::Satpass2::FormatTime::DateTime::Cldr - Format time using DateTime->format_cldr()

SYNOPSIS

use Astro::App::Satpass2::FormatTime::DateTime::Cldr;
my $tf = Astro::App::Satpass2::FormatTime::DateTime::Cldr->new();
print 'It is now ',
    $tf->format_datetime( 'HH:mm:SS', time, 1 ),
    " GMT\n";

NOTICE

This class and its subclasses are private to the Astro::App::Satpass2 package. The author reserves the right to add, change, or retract functionality without notice.

DETAILS

This subclass of Astro::App::Satpass2::FormatTime::DateTime formats times using DateTime->format_cldr(). Time zones other than the default local zone are handled using DateTime::TimeZone objects.

All this class really provides is the interface to DateTime->format_cldr(). Everything else is inherited.

As an enhancement (I hope!) to the DateTime cldr functionality, this module, before calling format_cldr(), finds all embedded literals and calls Astro::App::Satpass2::FormatTime::DateTime __preprocess_strftime_format() to expand them. This provides special-case things like '%{calendar_name}' and the results of DateTime method calls, plus some control over formatting.

Use of this formatter with Julian dates enabled (i.e. with DateTime::Calendar::Christian doing the heavy lifting) is unsupported, because DateTime::Calendar::Christian lacks some of the methods you might want it to have, including format_cldr() itself. This package checks for the following methods when it loads DateTime::Calendar::Christian, and patches them in if they are not there:

christian_era()
era()
era_abbr()
era_name()
format_cldr()
secular_era()
year_with_era()
year_with_christian_era()
year_with_secular_era()

This is unsupported not only because it is tinkering with somebody else's name space, but because the patches rely on knowing the internals of DateTime::Calendar::Christian, which may change without warning. Caveat coder.

METHODS

This class provides no public methods over and above those provided by Astro::App::Satpass2::FormatTime::DateTime and Astro::App::Satpass2::FormatTime::Strftime.

SUPPORT

Support is by the author. Please file bug reports at https://rt.cpan.org/Public/Dist/Display.html?Name=Astro-App-Satpass2, https://github.com/trwyant/perl-Astro-App-Satpass2/issues, or in electronic mail to the author.

AUTHOR

Thomas R. Wyant, III wyant at cpan dot org

COPYRIGHT AND LICENSE

Copyright (C) 2010-2023 by Thomas R. Wyant, III

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the directory LICENSES.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.