Besoin d'un coup de main (fonction strftime)
Fermé
Ghost Line
Messages postés
2
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
6 mars 2017
-
Modifié par Ghost Line le 6/03/2017 à 11:47
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 mars 2017 à 13:00
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 7 mars 2017 à 13:00
A voir également:
- Besoin d'un coup de main (fonction strftime)
- Fonction si et - Guide
- Bagage à main - Guide
- Jeter un coup d'oeil snap - Forum Snapchat
- Coup d'un soir avis ✓ - Forum Consommation & Internet
- Ma télé s'est éteinte d'un coup - Forum Téléviseurs
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 7/03/2017 à 13:08
Modifié par [Dal] le 7/03/2017 à 13:08
Salut,
Si tu n'as pas la possibilité de changer la locale du système par défaut, il peut, en revanche, être possible que la locale française soit installée, bien que non activée par défaut.
Pour voir si c'est le cas, en ligne de commande tape
Si tu as une locale française installée, tu peux l'utiliser pour tes dates dans le cadre de l'environnement d'exécution de ton script Perl en utilisant
Cela modifiera la locale pour le process de ton script Perl (pas pour le système).
Sinon, tu peux simplement faire un tableau associatif, qui va te permettre de faire correspondre les Mon, Tue, Wed, Thu, Fri, Sat, Sun en lun, mar, mer, jeu, ven, sam, dim. Un truc comme cela :
donne :
J'ai importé locale_h de POSIX et locale pour mon test, afin de forcer la locale à un format de date US avec setlocale(), pour la démo (sur ma Debian, la locale est fr_FR.utf8 par défaut).
Tu n'as pas à le faire, vu que ta locale est déjà en date US.
A la réflexion, cela peut avoir du sens de le faire, si ton script doit fonctionner dans des environnements hétérogènes, avec des locales éventuellement exotiques, de forcer la locale en C, qui sera toujours présente, pour avoir un résultat toujours cohérent.
Dal
Si tu n'as pas la possibilité de changer la locale du système par défaut, il peut, en revanche, être possible que la locale française soit installée, bien que non activée par défaut.
Pour voir si c'est le cas, en ligne de commande tape
locale -aet vois ce qui sort.
Si tu as une locale française installée, tu peux l'utiliser pour tes dates dans le cadre de l'environnement d'exécution de ton script Perl en utilisant
setlocale(), par exemple si la locale s'appelle fr_FR :
use locale; use POSIX qw(locale_h); # Imports setlocale() and the LC_ constants. setlocale(LC_TIME, "fr_FR") or die "Pardon";
Cela modifiera la locale pour le process de ton script Perl (pas pour le système).
Sinon, tu peux simplement faire un tableau associatif, qui va te permettre de faire correspondre les Mon, Tue, Wed, Thu, Fri, Sat, Sun en lun, mar, mer, jeu, ven, sam, dim. Un truc comme cela :
#!/usr/bin/perl use warnings; use strict; use POSIX qw(strftime locale_h); use locale; my %hash = ('Mon' => 'lun', 'Tue' => 'mar', 'Wed' => 'mer', 'Thu' => 'jeu', 'Fri' => 'ven', 'Sat' => 'sam', 'Sun' => 'dim' ); setlocale(LC_TIME, "C"); my $fr_dayname = $hash{strftime("%a", localtime())}; print strftime("MAG_%Y%M%d_nbcli_%H00.", localtime()) . $fr_dayname;
donne :
MAG_20170307_nbcli_1300.mar
J'ai importé locale_h de POSIX et locale pour mon test, afin de forcer la locale à un format de date US avec setlocale(), pour la démo (sur ma Debian, la locale est fr_FR.utf8 par défaut).
Tu n'as pas à le faire, vu que ta locale est déjà en date US.
A la réflexion, cela peut avoir du sens de le faire, si ton script doit fonctionner dans des environnements hétérogènes, avec des locales éventuellement exotiques, de forcer la locale en C, qui sera toujours présente, pour avoir un résultat toujours cohérent.
Dal