ユーザーに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 )
前もって感謝します!
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
日付の解釈を処理する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
提案として 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'
スラッシュで分割する
convert = replace.split('/')
次に、月の辞書を作成します。
months = {1:"January",etc...}
そしてそれを表示するには:
print months[convert[0]] + day + year