[Perl] Questions DateTime et locale

Philippe Delavalade philippe.delavalade at orange.fr
Mar 22 Mar 09:29:47 CET 2022


Bonjour la liste.

J'ai de petits soucis avec un programme ; les questions sont sûrement
simplistes mais avec le braille (je suis aveugle) la recherche dans la doc
n'est pas simple, donc désolé de poser ici...

Voici le code simplifié ; dans le programme réel, l'appell au tableau se
justifie car j'ai beaucoup de dates.

:begin code
#!/usr/bin/perl -w

use Modern::Perl;
use DateTime;
use DateTime::Format::Natural;
# les lignes suivantes semblent sans effet pour mes soucis
use DateTime::Locale;
use utf8;

my $parser = DateTime::Format::Natural->new;
my @dates;

push(@dates,$parser->parse_datetime( "25/02/2022" ));
push(@dates,$parser->parse_datetime( "15/08/2022" ));
my $une_date = $parser->parse_datetime( "01/12/2021" );

# Est-ce la bonne façon de créer cette nouvelle date ?
my $une_autre = $une_date->clone()->add( days => 43 );
push(@dates,$une_date);
push(@dates,$une_autre);

@dates = sort @dates;

foreach my $jour (@dates) {
  $jour->set_locale("fr-FR");
  # La ligne précédente n'est pas maligne.
  # Cela dit, je n'ai pas de solution globale ;
  # je ne m'en tire pas avec DateTime::Locale->load
  # que je ne sais pas utiliser
  say $jour->day_name." ".$jour->day." ".$jour->month_name." ".$jour->year;
}

exit(0);
:end code


Voici la sortie qui ne convient pas à cause des accents :

:begin sortie
mercredi 1 décembre 2021
jeudi 13 janvier 2022
vendredi 25 février 2022
lundi 15 août 2022
:end sortie

Merci de vos conseils éclairés.

-- 
Philippe


Plus d'informations sur la liste de diffusion Perl