繁体   English   中英

尝试从日期时间中减去天数并将其转换为字符串

[英]TRYING to subtract days from datetime and convert it to a string

从我所看到的,即使它不是最漂亮的,它也应该有效。 我已经尝试了很多东西,但似乎没有任何效果,我能做的最好的事情就是更改错误消息,哈哈。

try:
     date = dt.datetime.now()
     d1 = date - timedelta(days=1)
     d1.strftime('%Y%m%d')
     url = 'http://regsho.finra.org/FNQCshvol' + d1 + '.txt'

请尝试以下操作:

from datetime import timedelta
import datetime as dt

date = dt.datetime.now()
d1 = date - timedelta(days=1)
d1 = d1.strftime('%Y%m%d')          # I changed this line
url = 'http://regsho.finra.org/FNQCshvol' + d1 + '.txt'

strftime() 返回字符串,它不会将日期本身转换为字符串。

我稍微修改了你的代码。 它有几个错误,它没有运行。 您遇到的主要问题是您试图将字符串与日期时间对象连接起来。 您正确应用了strftime但没有保存字符串。 该字符串可以与另一个字符串连接。

import datetime as dt

date = dt.datetime.now()
d1 = date - dt.timedelta(days=1)
d1_string = d1.strftime('%Y%m%d')
url = 'http://regsho.finra.org/FNQCshvol{timestamp}.txt'.format(timestamp=d1_string)

在您的代码中,您没有将datetime.strftime()结果分配给变量。 解决方法很简单:

from datetime import datetime, timedelta

current_date = datetime.now()                     # store current date and time
required_date = current_date - timedelta(days=1)  # substitute 1 day
str_date = required_date.strftime('%Y%m%d')       # apply formatting
url = f'http://regsho.finra.org/FNQCshvol{str_date}.txt'

您也可以在一行中完成(这会使代码的可读性大大降低)

url = f"http://regsho.finra.org/FNQCshvol{(datetime.now() - timedelta(days=1)).strftime('%Y%m%d')}.txt"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM