如何在python时间元组中完成信息?

时间:2012-10-19 00:23:08

标签: python

想知道python中是否有一个函数可以在时间元组中获取部分信息并返回一个包含完整信息的时间元组。例如,当我打字时,日期是2012年10月18日星期四。这意味着一年中的某一天是292,工作日数字是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模块中 - 时间,日期时间,日历或某些东西 - 某处。感谢。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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)