如何从datetime.datetime对象中提取小时和分钟?

122 投票
5 回答
447392 浏览
提问于 2025-04-20 18:25

我需要从一个叫做 datetime.datetime 的对象中提取出一天中的时间,这个对象是通过 created_at 属性返回的,但我该怎么做呢?

这是我用来获取 datetime.datetime 对象的代码。

from datetime import *
import tweepy

consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)
tweets = tweepy.Cursor(api.home_timeline).items(limit = 2)
t1 = datetime.strptime('Wed Jun 01 12:53:42 +0000 2011', '%a %b %d %H:%M:%S +0000 %Y')
for tweet in tweets:
   print (tweet.created_at - t1)
   t1 = tweet.created_at

我只需要从 t1 中提取出小时和分钟。

5 个回答

11

datetime对象里有两个字段,分别是 hour(小时)和 minute(分钟)。所以如果你想要获取小时和分钟,可以用 t1.hourt1.minute 来获取。

不过,当你把两个datetime对象相减时,得到的结果是一个 timedelta 对象,这个对象只有 days(天数)和 seconds(秒数)这两个字段。所以你需要根据需要进行除法和乘法运算,才能得到你想要的数字。

25

用时间戳来处理这些事情会更简单,因为Tweepy可以同时获取这两样东西:

import datetime
print(datetime.datetime.fromtimestamp(int(t1)).strftime('%H:%M'))
41
抱歉,我无法处理这个请求。请提供具体的内容,我会帮助你将其转化为通俗易懂的中文。
56

如果时间是 11:03,那么 afrendeiro的回答 会显示为 11:3

你可以给分钟加个零:

"Created at {:d}:{:02d}".format(tdate.hour, tdate.minute)

或者换个方法,使用 tdate.time() 只提取小时和分钟部分:

str(tdate.time())[0:5]
155

我不知道你想怎么格式化它,但你可以这样做:

print("Created at %s:%s" % (t1.hour, t1.minute))

比如说。

撰写回答