如何获取 Python 日期时间对象自 1970 年 1 月 1 日以来的秒数?
How do I get seconds since 1/1/1970 of a Python datetime object?
我正在使用 Python 3.7 和 Django。我想获取日期时间对象自 1970 年 1 月 1 日以来的秒数(或毫秒数)。按照此处的建议 -- In Python, how do you convert a `datetime` object to seconds?,我实施了
now = datetime.now()
...
return [len(removed_elts) == 0, score, now.total_seconds()]
但是 "now.total_seconds()" 行给出了错误
AttributeError: 'datetime.datetime' object has no attribute 'total_seconds'
获取自 1/1/1970 以来的秒数的正确方法是什么?
now = datetime.now()
...
return [len(removed_elts) == 0, score, now.timestamp()]
这应该有效。
import datetime
first_date = datetime.datetime(1970, 01, 01)
time_since = datetime.datetime.now() - first_date
seconds = int(time_since.total_seconds())
import time
print(time.time())
输出:
1567532027.192546
你可以试试:
import datetime
now = datetime.datetime.now()
delta = (now - datetime.datetime(1970,1,1))
print(delta.total_seconds())
now
是 datetime.datetime
类型并且没有 .total_seconds()
方法。
delta
是 datetime.timedelta
类型并且有一个 .total_seconds()
方法。
希望这对您有所帮助。
与您提到的建议相反,您没有在 timedelta
object but on a datetime
对象上调用 total_seconds()
,它根本没有此属性。
因此,Python 3.7(和 2.7)的一种解决方案例如可以是:
import datetime
now = datetime.now()
then = datetime.datetime(1970,1,1)
...
return [len(removed_elts) == 0, score, (now - then).total_seconds()]
Python 3.3+ 的另一个更短但不太清楚(至少乍一看)的解决方案(感谢 ababak):
import datetime
now = datetime.now()
...
return [len(removed_elts) == 0, score, now.timestamp()]
我正在使用 Python 3.7 和 Django。我想获取日期时间对象自 1970 年 1 月 1 日以来的秒数(或毫秒数)。按照此处的建议 -- In Python, how do you convert a `datetime` object to seconds?,我实施了
now = datetime.now()
...
return [len(removed_elts) == 0, score, now.total_seconds()]
但是 "now.total_seconds()" 行给出了错误
AttributeError: 'datetime.datetime' object has no attribute 'total_seconds'
获取自 1/1/1970 以来的秒数的正确方法是什么?
now = datetime.now()
...
return [len(removed_elts) == 0, score, now.timestamp()]
这应该有效。
import datetime
first_date = datetime.datetime(1970, 01, 01)
time_since = datetime.datetime.now() - first_date
seconds = int(time_since.total_seconds())
import time
print(time.time())
输出:
1567532027.192546
你可以试试:
import datetime
now = datetime.datetime.now()
delta = (now - datetime.datetime(1970,1,1))
print(delta.total_seconds())
now
是 datetime.datetime
类型并且没有 .total_seconds()
方法。
delta
是 datetime.timedelta
类型并且有一个 .total_seconds()
方法。
希望这对您有所帮助。
与您提到的建议相反,您没有在 timedelta
object but on a datetime
对象上调用 total_seconds()
,它根本没有此属性。
因此,Python 3.7(和 2.7)的一种解决方案例如可以是:
import datetime
now = datetime.now()
then = datetime.datetime(1970,1,1)
...
return [len(removed_elts) == 0, score, (now - then).total_seconds()]
Python 3.3+ 的另一个更短但不太清楚(至少乍一看)的解决方案(感谢 ababak):
import datetime
now = datetime.now()
...
return [len(removed_elts) == 0, score, now.timestamp()]