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 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 7 mars 2017 à 13:00
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 7 mars 2017 à 13:00
A voir également:
- Besoin d'un coup de main (fonction strftime)
- Fonction si et - Guide
- Bagage à main - Guide
- Comment télécharger toutes les photos de google photos d'un coup ? - Guide
- Scan ligne de la main gratuit - Télécharger - Photo & Graphisme
- Fonction moyenne excel - Guide
1 réponse
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 099
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