我有一个python脚本我需要比较两个日期。我有一个日期表作为时间。struct_time对象,我需要将其与几个datetime进行比较。日期对象。
如何转换日期时间。日期对象转换成时间。struct_time对象?或者我可以用它们来做比较?
尝试使用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日
将日期对象转换为时间的示例。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/
请参阅Python时间模块的文档,该文档表明您可以使用日历。Timegm或时间。Mktime转换时间。struct_time对象到自epoch以来的秒数(您使用哪个函数取决于您的struct_time是在时区还是在UTC时间)。然后可以在另一个对象上使用datetime.datetime.time,并从epoch开始以秒为单位进行比较。
使用strftime
from "datetime"它具有各种属性,并且可以使用指令获取相应的数据。关于strftime method
可以使用的指令的完整列表,请参阅这个备忘单。请注意,这些指令必须以带单引号的字符串形式传递给strftime
。
的例子:
import datetime as dt
today = dt.datetime.today()
print(today.strftime('%H')) #prints hour 0-23
print(today.strftime('%m')) #prints month number 1-12
print(today.strftime('%M')) #prints minute 0-59