我有一个time。我想要其中的日,小时和分钟-作为元组或字典…我并不大惊小怪。
这些年来,我肯定用十几种语言做过十几次,但Python通常对所有问题都有一个简单的答案,所以我想在抛出一些令人作呕的简单(但冗长)数学之前,在这里问一下。
富兹先生提出了一个很好的观点。
我处理的是“列表”(有点像ebay列表),其中每个列表都有一个持续时间。我试图通过做when_added + duration - now找到剩下的时间
我说的对吗,这不包括夏令时?如果不是,最简单的增加/减少一个小时的方法是什么?
days, hours, minutes = td.days, td.seconds // 3600, td.seconds // 60 % 60
至于DST,我认为最好的方法是将两个datetime对象转换为秒。这样系统会为你计算夏令时。
>>> m13 = datetime(2010, 3, 13, 8, 0, 0) # 2010 March 13 8:00 AM
>>> m14 = datetime(2010, 3, 14, 8, 0, 0) # DST starts on this day, in my time zone
>>> mktime(m14.timetuple()) - mktime(m13.timetuple()) # difference in seconds
82800.0
>>> _/3600 # convert to hours
23.0
days, hours, minutes = td.days, td.seconds // 3600, td.seconds // 60 % 60
至于DST,我认为最好的方法是将两个datetime对象转换为秒。这样系统会为你计算夏令时。
>>> m13 = datetime(2010, 3, 13, 8, 0, 0) # 2010 March 13 8:00 AM
>>> m14 = datetime(2010, 3, 14, 8, 0, 0) # DST starts on this day, in my time zone
>>> mktime(m14.timetuple()) - mktime(m13.timetuple()) # difference in seconds
82800.0
>>> _/3600 # convert to hours
23.0
timedelta = pd.Timestamp("today") - pd.Timestamp("2022-01-01")
print(timedelta.components)
print(timedelta.components.days)
print(timedelta.components.seconds)
将返回如下内容:
Components(days=281, hours=2, minutes=24, seconds=3, milliseconds=72, microseconds=493, nanoseconds=0)
281
3
我不明白
days, hours, minutes = td.days, td.seconds // 3600, td.seconds // 60 % 60
这个怎么样
days, hours, minutes = td.days, td.seconds // 3600, td.seconds % 3600 / 60.0
每分钟的分和秒都是浮点数。