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-2026 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 files LICENSE-Artistic and LICENSE-GPL.

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.