Bonjour,
je voulais savoir si quelque chose comme theDate.strftime("%a %d %b %Y"), où theDate = datetime.date(2010, 3, 20), renvoie toujours la date mise en forme en anglais.
Si ce n'est pas le cas, peut-on forcer ce fonctionnement ?
Version imprimable
Bonjour,
je voulais savoir si quelque chose comme theDate.strftime("%a %d %b %Y"), où theDate = datetime.date(2010, 3, 20), renvoie toujours la date mise en forme en anglais.
Si ce n'est pas le cas, peut-on forcer ce fonctionnement ?
Salut rambc
Je ne sais pas comment tu te débrouilles :cry:
Chez moi ca se passe ainsi:
Montres nous un exemple?Code:
1
2
3
4
5
6
7
8
9
10
11 >>> import datetime >>> x = datetime.date(2010,1,1) >>> x datetime.date(2010, 1, 1) >>> print x 2010-01-01 >>> print x.strftime("%Y%m%dT%H%M%S") 20100101T000000 >>> print x.isoformat() 2010-01-01 >>>
- W
Je n'utilise pas
mais par exempleCode:x.strftime("%Y%m%dT%H%M%S")
Ceci donne :Code:x.strftime("%a %d %b %Y")
Code:Fri 01 Jan 2010
L'idée que j'ai en tête est une traduction des noms de mois et de jours en français, mais aussi dans d'autres langues.
Je me suis renseigné, parce que je me mélange toujours les pinceaux concernant les dates:
en anglais:
Thursday 9th April 2009
ou
Thursday 9 April 2009
en américain:
Wednesday, July 14 2010
ou
Wednesday, July 14th 2010
Si tu veux l’expression de la date en anglais, il me semble que ton expression convient parfaitement, du point de vue de l’ordre des éléments.
Si tu veux obtenir le th dans l’expression de la date, il faut rajouter ces caractères dans la chaîne de formatage:
Rien de particulierCode:theDate.strftime("%a %dth %b %Y")
La doc dit que
%a = Locale's abbreviated weekday name.
%b = Locale's abbreviated month name.
etc.
Il doit suffire de changer les spécifications de calendrier dans la locale pour obtenir la traduction toute faite.
Dans ce cas, comment fait-on pour avoir les noms en français, en espagnol ?... Si c'est faisable bien entendu.
Jamais utilisé, mais sans doute avec module locale
Voilà ce qu'il faut faire :
Ce n'est pas parfait car j'obtiens :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #! /usr/bin/env python import datetime import locale # http://docs.python.org/library/locale.htmls theDate = datetime.date(2010, 2, 2) loc = locale.getlocale() locale.setlocale(locale.LC_ALL, 'fr_FR') print(theDate.strftime("%A %d %B %Y")) locale.setlocale(locale.LC_ALL, loc) print(theDate.strftime("%A %d %B %Y"))
Code:
1
2 Mardi 02 février 2010 Tuesday 02 February 2010
C’est bien d’y être arrivé. Qu’est ce que tu trouves pas bon ?
Il manque le f majuscule à Février.
print(theDate.strftime("%A %d %B %Y").capitalize())
Pas de souci. Mais cela n'empêche pas que la traduction n'est pas cohérente avec la version anglaise.
Ceci étant dit, il y a peut-être des règles typographiques qui justifient cela.
Citation:
Les noms des jours de la semaine, tout comme les noms des mois, sont des noms communs. Ils sont donc variables en nombre et s’écrivent en minuscules. On écrira ainsi : Les membres de l’Académie française se réunissent tous les jeudis.
http://www.academie-francaise.fr/lan...ourdelasemaine
Citation:
Vu aussi sur http://fr.answers.yahoo.com
« déposez votre flèche de la souris sur l'heure de votre ordi.
vous allez voir que février est écrit » en minuscule
=======================
Dans le site suivant
http://www.anglaispratique.fr/Dates.html
des précisions sont apportées sur les dates en anglais:
forme la plus courante en anglais écrit:
Friday 12 September 2008
variantes en anglais écrit:
Friday 12th September 2008
Friday, September 12th, 2008
Friday, September 12, 2008
pour la forme la plus courante en américain, il est donné
Friday, September 12, 2008
Les 3 dernières formes ont cette fois une 2ième virgule.
Je me lance dans une réponse rapide en me servant de ma mémoire et au risque de dire une grosse bêtise :
Une règle ortho-typographique est que les mois en Francais ne prennent PAS de majuscule contrairement à l'anglais où il FAUT une majuscule :P
Donc au contraire, ton code respecte bien la typo du pays :)
[Edit : Grillé le temps de lire le fil et d'y répondre...]