在 Python 中将日期时间对象转换为秒
在 Python 中使用日期时间对象时,通常需要将它们转换为秒以适应各种情况分析目的。但是,toordinal() 方法可能无法提供所需的输出,因为它仅区分具有不同日期的日期。
要准确地将日期时间对象转换为秒,特别是对于 1970 年 1 月 1 日的特定日期,有多种选择。对于所有其他开始日期,您需要计算两个日期之间的时差。
对于 1970 年 1 月 1 日:
datetime.datetime.timestamp(): 该方法直接返回自 Unix 纪元以来的秒数,对应 1970 年 1 月 1 日 00:00:00 UTC。
t = datetime.datetime(1970, 1, 1)
seconds = t.timestamp()
time.mktime(): time.mktime() 函数也可用于将日期时间对象转换为秒,因为Unix 纪元。
import time
t = datetime.datetime(1970, 1, 1)
time_struct = t.timetuple()
seconds = time.mktime(time_struct)
对于任何其他开始日期:
timedelta.total_seconds (): 两个 datetime 对象相减得到一个 timedelta 对象。 timedelta 的total_seconds() 方法提供两个日期之间的秒数。
t = datetime.datetime(2009, 10, 21, 0, 0)
starting_date = datetime.datetime(1970, 1, 1)
seconds = (t - starting_date).total_seconds()
需要注意的是,为了获得准确的结果,开始日期应以 UTC(协调世界时)指定。如果您的日期时间不是 UTC,您需要将其转换或附加具有适当偏移量的 tzinfo 类。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3