0

現在の日付と同じ年月のオブジェクトを作成しようとしていますが、日をその月の別の日付に変更しています。

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が機能すると述べていますが、intではなくdatetime.date objが必要であるというエラーが表示されます。

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

4

2 に答える 2

2

あなたの問題は非常に簡単です:

from datetime import [some items including] datetime

インポートが完了すると、はdatetimeと呼ばれていたものを参照し、 はそれ以外の場合は と呼ばれていたものを参照します。datetime.datetimedatetime.datedatetime.datetime.date

date(これは、インポートしたため、そうでない場合は を参照するようになりました)を使用するか、すべての名前をdatetime.date単にimport datetime修飾することができますwhole = datetime.date.today()。そうしないと迷子になりやすいので、私は後者を好みますが、それは個人的な好みの問題です.

于 2012-04-17T03:41:53.283 に答える
2

あなたの問題は、最後から 2 番目の回線datetime.dateに電話をかけたいときに電話をかけることだと思います。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

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

個人的には、これが私がいつもただすることを好む理由ですimport datetime

于 2012-04-17T03:38:14.417 に答える