4

想知道python中是否有一个函数可以在时间元组中获取部分信息并返回具有完整信息的时间元组。例如,当我打字时,日期是 2012 年 10 月 18 日星期四。这意味着一年中的第 292 天是第 3 天,工作日数是 3。我希望能够执行以下操作:

>>> part_tuple=2012,10,18,0,0,0,0,0,0   
>>> complete_time_tuple=unknown_mod.unknown_func(part_tuple)
>>> complete_time_tuple
>>> (2012, 10, 18, 0, 0, 0, 292, 3, 0)

或者,我想做:

>>> part_tuple=2012,0,0,0,0,0,292,0,0
>>> complete_time_tuple=unknown_mod.unknown_func(part_tuple)

并再次获得 complete_tuple 。当然可以编写代码来执行此操作,但我猜它已经隐藏在 python 模块中——时间、日期时间、日历或其他东西——某处。谢谢。

4

2 回答 2

1

对于您的第一个问题,您可以使用datetime(至少需要 Y、M、D):

from datetime import datetime

dt = datetime(2012, 10, 18)
print dt.timetuple()
# time.struct_time(tm_year=2012, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=292, tm_isdst=-1)

第二个应该很容易:

from datetime import timedelta
print datetime(2012, 1, 1) + timedelta(days=291)
# datetime.datetime(2012, 10, 18, 0, 0)
于 2012-10-19T00:36:25.827 回答
1

datetime.timetuple似乎正是您所要求的:

>>> import datetime
>>> d = datetime.date(2012, 10, 18)
>>> d.timetuple()
time.struct_time(tm_year=2012, tm_mon=10, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=292, tm_isdst=-1)
>>> tuple(d.timetuple())
(2012, 10, 18, 0, 0, 0, 3, 292, -1)
于 2012-10-19T00:40:29.670 回答