如何将datetime.date对象转换为time.struct_time对象?

时间:2011-04-14 00:34:58

标签: python datetime time

我有一个python脚本,我需要比较两个日期。我有一个列表日期作为time.struct_time对象,我需要与一些datetime.date对象进行比较。

如何将datetime.date对象转换为time.struct_time对象?或者我可以直接使用它们进行比较吗?

3 个答案:

答案 0 :(得分:12)

尝试使用date.timetuple()。来自Python文档:

  

返回time.struct_time等   由time.localtime()返回。该   小时,分钟和秒都是0,和   DST标志为-1。 d.timetuple()是   相当于   time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1))yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1   当年的日期编号   从1月1日开始。

答案 1 :(得分:1)

将日期对象转换为time.struct_time对象的示例:

#### Import the necessary modules
>>> dt = date(2008, 11, 10)
>>> time_tuple = dt.timetuple()
>>> print repr(time_tuple)
'time.struct_time(tm_year=2008, tm_mon=11, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0,     
 tm_wday=0, tm_yday=315, tm_isdst=-1)'

有关更多示例,请参阅此链接:http://www.saltycrane.com/blog/2008/11/python-datetime-time-conversions/

答案 2 :(得分:0)

请参阅time Python module的文档,该文档表明您可以使用calendar.timegmtime.mktimetime.struct_time对象转换为自纪元以来的秒数(其功能为您)使用取决于您的struct_time是在时区还是在UTC时间)。然后,您可以在另一个对象上使用datetime.datetime.time,并在纪元以来的几秒钟内进行比较。