Python: Converting from `datetime.datetime` to `time.time`

前端 未结 5 1849
醉话见心
醉话见心 2020-12-05 08:57

In Python, how do I convert a datetime.datetime into the kind of float that I would get from the time.time function?

相关标签:
5条回答
  • 2020-12-05 09:38
    time.mktime(dt_obj.timetuple())
    

    Should do the trick.

    0 讨论(0)
  • 2020-12-05 09:39

    I know this is an old question, but in python 3.3+ there is now an easier way to do this using the datetime.timestamp() method:

    from datetime import datetime
    timestamp = datetime.now().timestamp()
    
    0 讨论(0)
  • 2020-12-05 09:45

    Given a datetime.datetime object dt, you could use

    (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
    

    Example:

    >>> dt = datetime.datetime.now(); t = time.time()
    >>> t
    1320516581.727343
    >>> (dt - datetime.datetime.utcfromtimestamp(0)).total_seconds()
    1320516581.727296
    

    Note that the timedelta.total_seconds() method was introduced in Python 2.7.

    0 讨论(0)
  • 2020-12-05 09:52

    It's not hard to use the time tuple method and still retain the microseconds:

    >>> t = datetime.datetime.now()
    >>> t
    datetime.datetime(2011, 11, 5, 11, 26, 15, 37496)
    
    >>> time.mktime(t.timetuple()) + t.microsecond / 1E6
    1320517575.037496
    
    0 讨论(0)
  • 2020-12-05 10:00

    A combination of datetime.timetuple() and time.mktime():

    >>> import datetime
    >>> import time
    >>> now = datetime.datetime.now()
    >>> secondsSinceEpoch = time.mktime(now.timetuple())
    
    0 讨论(0)
提交回复
热议问题