2017-08-17 60 views
0

我得到無效的格式字符串錯誤,當我嘗試運行下面的代碼(最後一行),不知道在哪裏,我錯過了點:無效的格式字符串在Python

import datetime 
    DAYS = 2 
    SINCE = datetime.datetime.now() - datetime.timedelta(days=DAYS) 
    params = "?fields=feed.since(" + SINCE.strftime("%s") + ").limit(1),name,updated_time&" 

任何建議,將不勝感激!

+0

適用於我,無論是在2還是在3. – Thomas

+0

您是否將'params'傳遞給SQL查詢? – GerryMcBride

+0

我的python版本是3.6.1,而Anaconda版本是4.4.0(64位) – user3447653

回答

2

您必須使用「%S」,因爲「%S」是不是你叫的方法定義:https://docs.python.org/2/library/datetime.html#datetime.strftime

import datetime 
DAYS = 2 
SINCE = datetime.datetime.now() - datetime.timedelta(days=DAYS) 
params = "?fields=feed.since(" + SINCE.strftime("%S") + ").limit(1),name,updated_time&" 

您應該添加你所需要的格式,爲您的應用。

0

這要看哪種格式適合你,但如果你需要使用時間戳:

int(time.mktime(SINCE.timetuple())) 
0

它工作正常,我(Python 2.7版)。如果是查詢的一部分,它是失敗的那一部分,也許你可以使用其他日期格式,如:

params = "?fields=feed.since(" + SINCE.strftime("%Y-%m-%d %H:%M:%S") + ").limit(1),name,updated_time&"

請注意,大寫字母「S」,會給你DateTime對象的秒。

+0

我們在主要問題下正在討論您的第一點意見。它在Windows的Python 2.7中不起作用,但它似乎在Linux上工作。 – roganjosh

+0

那麼SINCE.strftime(「%Y-%m-%d%H:%M:%S」)應該在查詢中正常工作。這是一個有用的解決方法。 – nkipreos