Python parsedatetime:获取当月/本月的第一个月

时间:2015-07-13 16:12:03

标签: python

我在我的Python脚本中使用了parsedatetime库,它似乎是#34;上个月"工作和"下个月"但不是"这个月。"

我错过了什么?有没有办法获得当月的第一天?

编辑: 对不起,这里有一些代码:

import parsedatetime.parsedatetime as pdt
p = pdt.Calendar()
res = p.parse('this month')
print(str(res))

返回:

(time.struct_time(tm_year=2015, tm_mon=7, tm_mday=13, tm_hour=16, tm_min=22, tm_sec=10, tm_wday=0, tm_yday=194, tm_isdst=0), 0)

2 个答案:

答案 0 :(得分:2)

我从未使用过parsedatetime,虽然这是一个有趣的方式来获得本月的第一天。不过,我通常会这样做:

>>> datetime.datetime.now().replace(day=1, hour=0, minute=0, second=0)

它也不那么浪费资源,因为你不必在运行时解析任何文本,但那是真的。

您可以通过timetuple()将其转换为time.struct_time:

>>> datetime.datetime.now().replace(day=1, hour=0, minute=0, second=0).timetuple()

time.struct_time(tm_year = 2015,tm_mon = 7,tm_mday = 1,tm_hour = 0,tm_min = 0,tm_sec = 0,tm_wday = 2,tm_yday = 182,tm_isdst = -1)

答案 1 :(得分:0)

我知道是时候回答这个问题了,但是我想分享一下我发现的技巧,因为parsedatetime没有__index也不具有bom 我已经使用以下偷偷摸摸的技巧来获得当前月份的上限和这样的当前周的上限 bow返回当前月份的开始 res = p.parse("one month after last month")返回当前星期的开始