我有一个python脚本,我需要比较两个日期。我有一个列表日期作为time.struct_time对象,我需要与一些datetime.date对象进行比较。
如何将datetime.date对象转换为time.struct_time对象?或者我可以直接使用它们进行比较吗?
答案 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.timegm或time.mktime将time.struct_time对象转换为自纪元以来的秒数(其功能为您)使用取决于您的struct_time是在时区还是在UTC时间)。然后,您可以在另一个对象上使用datetime.datetime.time,并在纪元以来的几秒钟内进行比较。