web-dev-qa-db-ja.com

日付をmm / dd / yyyyから別の形式にPython

ユーザーにmm/dd/yyyyの形式で日付を入力して変換するように求めるプログラムを作成しようとしています。したがって、ユーザーが01/01/2009と入力すると、プログラムは2009年1月1日を表示するはずです。これが今のところ私のプログラムです。私はなんとか月を変換しましたが、他の要素は括弧で囲まれているため、1月[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 )

前もって感謝します!

9
user3307366

python標準の一部であるdatetimeモジュールからのstrptime()strftime()の組み合わせを使用して、ホイールを再発明しないでくださいライブラリ( 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

日付の解釈を処理するpythonのdatetimeライブラリを調べてみてください。 https://docs.python.org/2/library/datetime.html#module-datetime

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") 

%m、%d、およびその他の識別子の意味を確認するには、ここで確認できます。 https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

5
shrnkrn

提案として dateutil を使用すると、それ自体で形式を推測できます。

>>> 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

スラッシュで分割する

convert = replace.split('/')

次に、月の辞書を作成します。

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

そしてそれを表示するには:

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