簡體   English   中英

Python - 類型錯誤:需要一個 integer(獲取類型 datetime.datetime)

[英]Python - TypeError: an integer is required (got type datetime.datetime)

我有以下代碼:

import datetime
from datetime import datetime as dt

def ceil_dt(dt, delta):
    return dt + (dt.min - dt) % delta

NextInterval5m = ceil_dt(now, timedelta(minutes=5))

unixtime5m = dt.fromtimestamp(NextInterval5m)

問題是我不斷收到以下錯誤:

TypeError: an integer is required (got type datetime.datetime)

有人可以幫我解決這個問題嗎? 我不明白我應該轉換NextInterval5m以使其工作。 我正在嘗試將NextInterval5m轉換為 Unix 時間戳

您應該能夠通過在datetime.datetime object 上使用.timestamp()將其轉換為 unix 時間戳。 However, this function is exclusive to Python 3. If you need something for python 2, you can use .total_seconds() which requires a datetime.time_delta object instead.

文檔: https://docs.python.org/3.8/library/datetime.html#datetime.datetime.timestamp

如果您使用的是 python 3.3+,請使用.timestamp()

import datetime
from datetime import datetime as dt
from datetime import timedelta

def ceil_dt(dt, delta):
    return dt + (dt.min - dt) % delta

now = dt.now()
NextInterval5m = ceil_dt(now, timedelta(minutes=5))
unixtime5m = NextInterval5m.timestamp()
print(unixtime5m)

Output:

1596926400.0

或者

import datetime
from datetime import datetime as dt
from datetime import timedelta

def ceil_dt(dt, delta):
    return dt + (dt.min - dt) % delta

now = dt.now()
NextInterval5m = ceil_dt(now, timedelta(minutes=5))
unixtime5m = NextInterval5m.timestamp()

print((NextInterval5m - datetime.datetime(1970,1,1)).total_seconds())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM