【发布时间】:2023-04-04 03:14:01
【问题描述】:
我正在尝试计算“当时”和“现在”之间的时间差。我改变了格式,以便更好地比较它(我不需要秒或纳秒等)
'then' 时间来自加密,并且正在被解析以进行比较,这就是我担心的错误。
def decrypt_and_compare_date():
from Crypto.Cipher import XOR
from datetime import timedelta, datetime, date
import base64
import config
cipher = XOR.new(cryptopassword)
encrypted = cipher.decrypt(base64.b64decode(config.event_date))
then = date(encrypted)
now = date(2015,10,5)
days = (now - then).days
print days + " days ago."
给我以下错误:
TypeError:需要一个整数
如果我在这一行使用 *:
then = date(encrypted)
然后它会解析我这个错误。
TypeError:函数最多接受 3 个参数(给定 8 个)
日期(加密)应该是2015,7,1
有人知道魔术吗?
【问题讨论】:
-
encrypted的值是多少? -
date("2015,7,1")与date(2015,7,1)不同,请改用date(*map(int, date_string.split(",")))。你不能使用1 + " days ago",使用"%d days ago" % days。 Python 是强类型的。了解对象与其字符串表示之间的区别(打开 REPL,导入您的模块并使用其中的各种对象:调用repr(obj)、str(obj)、print(obj)、type(obj)、isinstance(obj, str)。encrypted是decrypt()调用结果的错误名称,请改用date_string。
标签: python date datetime integer timedelta