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

这里它说 ints 在构造时工作,但我收到一个错误,说它需要一个 datetime.date obj 而不是 ints。

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

4

2 回答 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 回答
2

你的问题很简单:

from datetime import [some items including] datetime

导入完成后,datetime指的是以前称为的datetime.datetimedatetime.date否则称为datetime.datetime.date

您可以使用date(由于您导入了它,现在指的是其他情况下的内容datetime.date)或仅使用import datetime并限定所有名称,例如,whole = datetime.date.today()等等。我自己更喜欢后者,因为否则很容易迷路,但这是个人喜好。

于 2012-04-17T03:41:53.283 回答