web-dev-qa-db-fra.com

Convertir la date de MM / DD / AAAA à un autre format de Python

J'essaie d'écrire un programme qui demande à l'utilisateur de saisir la date dans le format MM/DD/AAAA et de le convertir. Donc, si l'utilisateur de l'utilisateur 01/01/2009, le programme devrait afficher le 01 janvier 2009. Ceci est mon programme jusqu'à présent. J'ai réussi à convertir le mois, mais les autres éléments ont un support autour d'eux afin qu'il affiche janvier [01] [2009].

date=input('Enter a date(mm/dd/yyy)')
replace=date.replace('/',' ')
convert=replace.split()
day=convert[1:2]
year=convert[2:4]
for ch in convert:
    if ch[:2]=='01':
        print('January ',day,year )

Merci d'avance!

9
user3307366

Ne réinventez pas la roue et utilisez une combinaison de strptime() et strftime() du module datetime qui fait partie de python Standard Bibliothèque ( Docs ):

>>> from datetime import datetime
>>> date_input = input('Enter a date(mm/dd/yyyy): ')
Enter a date(mm/dd/yyyy): 11/01/2013
>>> date_object = datetime.strptime(date_input, '%m/%d/%Y')
>>> print(date_object.strftime('%B %d, %Y'))
November 01, 2013
25
alecxe

Vous voudrez peut-être examiner la bibliothèque DateTime de Python qui s'occupera des dates d'interprétation pour vous. https://docs.python.org/2/library/dateTime.html#module-dateTetime

from datetime import datetime
d = input('Enter a date(mm/dd/yyy)')

# now convert the string into datetime object given the pattern
d = datetime.strptime(d, "%m/%d/%Y")

# print the datetime in any format you wish.
print d.strftime("%B %d, %Y") 

Vous pouvez vérifier ce que% m,% d et autres identifiants représentent ici: https://docs.python.org/2/library/dateTime.htm#strftime-and-tructime-behavior

5
shrnkrn

En tant que suggestion, utilisez dateutil , qui déduit le format par lui-même:

>>> from dateutil.parser import parse
>>> parse('01/05/2009').strftime('%B %d, %Y')
'January 05, 2009'
>>> parse('2009-JAN-5').strftime('%B %d, %Y')
'January 05, 2009'
>>> parse('2009.01.05').strftime('%B %d, %Y')
'January 05, 2009'
2
behzad.nouri

Diviser par les barres obliques

convert = replace.split('/')

puis créer un dictionnaire des mois:

months = {1:"January",etc...}

puis pour l'afficher faire:

print months[convert[0]] + day + year
1
Snoop Dogg