【问题标题】:datetime datetime to timetuple error - How to convert datetime datetime to timetuple?datetime datetime 到 timetuple 错误 - 如何将 datetime datetime 转换为 timetuple?
【发布时间】:2019-12-26 23:34:28
【问题描述】:

当我尝试将 datetime.datetime 对象转换为时间元组时出现错误。我有一个方法可以比较时间并返回时间的字符串描述(例如下午、晚上等)

我尝试过导入不同的模块。现在我正在使用“从日期时间导入日期时间、时间增量、时间”。我还打印了要转换的类型对象,它显示它是一个 datetime.datetime 对象,但是当我尝试运行 .timetuple 时,它​​说它正在接收一个 int。

tweetTime 是来自 tweet.created_at 的 tweepy 模块响应

    tweetTime = time.mktime(tweetTime.timetuple())
    if tweetTime <= datetime.time(03,00,00):
        return "early am"
    elif tweetTime <= datetime.time(05,00,00):
        return "am"
    elif tweetTime <= datetime.time(10,00,00):
        return "morning"
    elif tweetTime <= datetime.time(16,00,00):
        return "afternoon"
    elif tweetTime <= datetime.time(18,00,00):
        return "midday"
    else:
        return "evening"

使用日期时间的附加代码

now=datetime.today().now()
prev=now-timedelta(minutes=1440)

这是我得到的错误:“描述符'时间'需要一个'datetime.datetime'对象但收到一个'int'”

【问题讨论】:

  • 能贴出完整的代码吗?
  • 上面已经添加了额外的代码

标签: python datetime time


【解决方案1】:

错误是抱怨函数调用时间(即datetime.time(03,00,00))。

您已经从模块datetime 导入time,因此您不必编写datetime.time。试着让你的代码看起来像这样......

if tweetTime <= time(3,00,00):
    return "early am"
elif tweetTime <= time(5,00,00):
    return "am"
elif tweetTime <= time(10,00,00):
    return "morning"
elif tweetTime <= time(16,00,00):
    return "afternoon"
elif tweetTime <= time(18,00,00):
    return "midday"
else:
    return "evening"

这应该解决您在原始问题中提到的错误。

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 2020-03-04
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多