2012-04-17 11 views
0

私は現在の日付と同じ年と月のオブジェクトを作成しようとしていますが、その日をその月の別の日付に変更しています。ここでdatetime objを構築する際の問題?

from datetime import timedelta, date, datetime 


whole = date.today() 
wholestr= str(whole) 
vali = wholestr.split('-') 
year=int(vali[0]) 
month=int(vali[1]) 
day=int(vali[2]) 
sub = datetime.date(year,month,16) 
print sub 

構築する場合には、int型が動作することを言いますが、私はそれをdatetime.date OBJではなくint型を必要とするというエラーを取得します。

http://docs.python.org/library/datetime.html#date-objects

答えて

2

私はあなたの問題はあなただけの最後の行に2番目にdateを呼び出したいときにdatetime.dateを呼び出すことであると信じています。ただdateを使用するために変更すると、私にこの結果を与えた:

>>> from datetime import timedelta, date, datetime 
>>> whole = date.today() 
>>> wholestr = str(whole) 
>>> vali = wholestr.split('-') 
>>> year = int(vali[0]) 
>>> month = int(vali[1]) 
>>> day = int(vali[2]) 
>>> sub = date(year, month, 16) 
>>> sub 
datetime.date(2012, 4, 16) 
>>> print sub 
2012-04-16 

またあなたはこのようdatetimeを呼び出すことができます。私は常にちょうどimport datetimeを行うことを好む理由

>>> datetime(year, month, 16) 
datetime.datetime(2012, 4, 16, 0, 0) 

個人的に、これはあります。

2

あなたの問題は非常に簡単です:インポートが完了した後

from datetime import [some items including] datetime 

datetimedatetime.datetimeと呼ばれるように使用したものを指し、datetime.dateはそうdatetime.datetime.dateと呼ばれるものです。

あなたはdate(あなたがそれを輸入しているので、今そうdatetime.dateどうなるかを指している)、または単にimport datetimeとすべての名前を修飾、例えば、whole = datetime.date.today()とはように使用することができます。私は後者を好むが、そうでなければ失われるのは簡単だからだが、それは個人的な好みだ。

関連する問題