构建日期时间对象的问题?

时间:2012-04-17 03:33:28

标签: python datetime

我正在尝试使用与当前日期相同的年份和月份创建一个对象,但将该日期更改为该月份的其他日期。

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 个答案:

答案 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}}等等。我自己更喜欢后者,因为否则容易迷路,但这是个人偏好的事情。