2014-09-09 6 views
9

Sono obbligato ad estrarre l'ora del giorno dall'oggetto datetime.datetime restituito dall'attributo created_at. Ma non capisco come farlo. Questo è il mio codice per ottenere l'oggetto datetime.datetime.Come estrarre ore e minuti da un oggetto 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 

Devo estrarre solo l'ora e i minuti da t1.

risposta

23

Non so come si desidera formattarlo, ma si può fare:

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

per esempio.

5

datetime ha campi hour e minute. Quindi, per ottenere le ore e i minuti, si utilizzerà t1.hour e t1.minute.

Tuttavia, quando si sottraggono due datatempo, il risultato è un timedelta, che ha solo i campi days e seconds. Quindi dovrai dividere e moltiplicare se necessario per ottenere i numeri che ti servono.

9

Se il tempo è 11:03, quindi la risposta accettata stamperà 11: 3.

Si potrebbe azzerare-pad i minuti:

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

O andare in un altro modo e utilizzare tdate.time() e prendere solo la parte ora/minuto:

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

E 'più facile da usare il timestamp per questa cosa dal momento che Tweepy ottiene entrambi

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