How can I extract hours and minutes from a datetime.datetime object?

PythonDatetimeTwitterTweepy

Python Problem Overview


I am required to extract the time of the day from the datetime.datetime object returned by the created_at attribute, but how can I do that?

This is my code for getting the datetime.datetime object.

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

I need to only extract the hour and minutes from t1.

Python Solutions


Solution 1 - Python

I don't know how you want to format it, but you can do:

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

for example.

Solution 2 - Python

If the time is 11:03, then afrendeiro's answer will print 11:3.

You could zero-pad the minutes:

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

Or go another way and use tdate.time() and only take the hour/minute part:

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

Solution 3 - Python

It's easier to use the timestamp for these things since Tweepy gets both:

import datetime
print(datetime.datetime.fromtimestamp(int(t1)).strftime('%H:%M'))

Solution 4 - Python

import datetime

YEAR        = datetime.date.today().year
MONTH       = datetime.date.today().month
DATE        = datetime.date.today().day
HOUR        = datetime.datetime.now().hour
MINUTE      = datetime.datetime.now().minute
SECONDS     = datetime.datetime.now().second

print(YEAR, MONTH, DATE, HOUR, MINUTE, SECONDS)

2021 3 11 19 20 57

Solution 5 - Python

datetime has fields hour and minute. So to get the hours and minutes, you would use t1.hour and t1.minute.

However, when you subtract two datetimes, the result is a timedelta, which only has the days and seconds fields. So you'll need to divide and multiply as necessary to get the numbers you need.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAbhishek SharmaView Question on Stackoverflow
Solution 1 - PythonafrendeiroView Answer on Stackoverflow
Solution 2 - PythonshanebView Answer on Stackoverflow
Solution 3 - PythonMadelyne Velasco MiteView Answer on Stackoverflow
Solution 4 - PythonhariKView Answer on Stackoverflow
Solution 5 - PythonLiam KirshView Answer on Stackoverflow