我正在尝试使用与当前日期相同的年份和月份创建一个对象,但将该日期更改为该月份的其他日期。
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。
答案 0 :(得分: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
。
答案 1 :(得分:2)
你的问题很简单:
from datetime import [some items including] datetime
导入完成后,datetime
指的是以前称为datetime.datetime
的内容,而datetime.date
则称为datetime.datetime.date
。
您可以使用date
(因为您导入了它,现在指的是datetime.date
}或仅import datetime
并且限定所有名称,例如whole = datetime.date.today()
1}}等等。我自己更喜欢后者,因为否则容易迷路,但这是个人偏好的事情。