首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >datetime datetime to timetuple错误-如何将datetime datetime转换为timetuple?

datetime datetime to timetuple错误-如何将datetime datetime转换为timetuple?
EN

Stack Overflow用户
提问于 2019-08-22 00:28:26
回答 1查看 80关注 0票数 0

当我尝试将我的datetime.datetime对象转换成时序数时,我得到了一个错误。我有一个方法,它比较时间并返回时间的字符串描述(例如,下午、晚上等)

我尝试过导入不同的模块。现在我使用的是"from datetime import datetime,timedelta,time“。我还打印了我想要转换的类型对象,它显示它是一个datetime.datetime对象,但是当我尝试运行.timetuple时,它显示它正在接收一个int。

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

代码语言:javascript
复制
    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"

使用datetime的其他代码

代码语言:javascript
复制
now=datetime.today().now()
prev=now-timedelta(minutes=1440)

这是im收到的错误:“descriptor 'time‘需要一个'datetime.datetime’对象,但收到了一个'int'”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 06:48:56

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

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

代码语言:javascript
复制
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"

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57595855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档