可以在python中创建没有日期的datetime.date对象吗?

时间:2013-06-30 04:14:39

标签: python

我正在尝试在Python中输入日期,但有时我不知道确切的日期或月份。所以我想只记录一年。我想做点什么:

datetime.date(year=1940, month="0 or None", day="0 or None")

这是否有代码?或者如果没有,你将如何处理这个问题?

2 个答案:

答案 0 :(得分:4)

很遗憾,您无法通过0,因为没有月0因此您将获得ValueError: month must be in 1..12,因此您无法跳过月份或日期,因为两者都是必需的。< / p>

如果您不知道确切的年份或月份,只需传递1个月和日,然后只保留年份。

>>> d = datetime.date(year=1940, month=1, day=1)
>>> d
datetime.date(1940, 1, 1)
>>> d.year
1940
>>> d = datetime.date(year=1940, month=1, day=1).year
>>> d
1940

第二个陈述是第一个陈述的简写。

但是,如果您只想存储年份,则不需要datetime对象。您可以单独存储整数值。日期对象表示月和日。

答案 1 :(得分:2)

Pandas有Period课程,如果您不知道,那么您无需提供日期:

import pandas as pd

pp = pd.Period('2013-12', 'M')
print pp
print pp + 1
print pp - 1
print (pp + 1).year, (pp + 1).month

输出:

2013-12
2014-01
2013-11
2014 1