在Python中,如何将“ datetime”对象转换为秒?

发布于 2021-02-02 23:11:41

为这个简单的问题表示歉意…我是Python的新手…我四处搜寻,似乎没有任何反应。

我有一堆datetime对象,并且我想计算每个对象过去某个固定时间以来的秒数(例如,自1970年1月1日起)。

import datetime
t = datetime.datetime(2009, 10, 21, 0, 0)

这似乎只能区分具有不同日期的日期:

t.toordinal()

任何帮助深表感谢。

关注者
0
被浏览
110
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    在1970年1月1日这个特殊日期,有多种选择。

    对于任何其他开始日期,你需要以秒为单位获取两个日期之间的差额。将两个日期相减得到一个timedelta对象,从python 2.7开始,该对象具有total_seconds()功能。

    >>> (t-datetime.datetime(1970,1,1)).total_seconds()
    1256083200.0
    

    开始日期通常以UTC指定,因此,要获得正确的结果,datetime你也应使用UTC输入该公式。如果你datetime尚未使用UTC,则需要在使用前进行转换,或附加tzinfo具有适当偏移量的类。

    如评论中所述,如果你有tzinfo附件,datetime则在开始日期也需要一个附件,否则减法会失败;对于上面的示例,tzinfo=pytz.utc如果使用Python 2或tzinfo=timezone.utcPython 3,我会添加。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看