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.