2017-08-17 105 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