2014-09-09 13 views
9

Tôi được yêu cầu trích xuất thời gian trong ngày từ đối tượng datetime.datetime được trả về bởi thuộc tính created_at. Nhưng tôi không hiểu làm thế nào để làm điều đó. Đây là mã của tôi để nhận đối tượng datetime.datetime.Làm thế nào để trích xuất giờ và phút từ một đối tượng 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 

Tôi chỉ cần trích xuất giờ và phút từ t1.

Trả lời

23

Không biết làm thế nào bạn muốn định dạng nó, nhưng bạn có thể làm:

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

ví dụ.

5

ngày giờ có các trường hourminute. Vì vậy, để có được giờ và phút, bạn sẽ sử dụng t1.hourt1.minute.

Tuy nhiên, khi bạn trừ hai thời gian, kết quả là một timedelta, chỉ có các trường daysseconds. Vì vậy, bạn sẽ cần phải phân chia và nhân lên khi cần thiết để có được những con số bạn cần.

9

Nếu thời gian là 11:03, thì câu trả lời được chấp nhận sẽ in 11: 3.

Bạn có thể zero-pad các phút:

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

Hoặc đi theo con đường khác và sử dụng tdate.time() và chỉ lấy một phần giờ/phút:

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

Thật dễ dàng hơn để sử dụng các dấu thời gian cho những điều này kể từ khi Tweepy nhận được cả hai

import datetime 
print(datetime.datetime.fromtimestamp(int(t1)).strftime('%H:%M') 
Các vấn đề liên quan