我寫了一個從 Twitter 接收資料的腳本,現在我正在做列拆分,我希望日期和時間在不同的列中。
我得到一個類似的日期:2021 年 10 月 20 日星期三 16:42:04 0000
我使用以下代碼執行此操作:
filtered_data['date'] = tweet['created_at']
接下來,我想使用 datetime 將接收時的這個日期轉換為兩個欄位
date_formats = '%d-%m-%Y'
time_formats = '%H:%M:%S'
申請時:
filtered_data['date'] = datetime.strptime(tweet['created_at'], date_formats)
我收到以下錯誤:
time data 'Wed Oct 20 16:42:04 0000 2021' does not match format '%d-%m-%Y'
告訴我如何進行這種轉換以及是否有可能做到這一點
uj5u.com熱心網友回復:
您需要先使用當前格式。看一個例子:
from datetime import datetime
my_date = 'Wed Oct 20 16:42:04 0000 2021'
initial_format = '%a %b %d %H:%M:%S %z %Y'
final_format = '%d-%m-%Y'
new_date = datetime.strptime(my_date, initial_format).strftime(final_format)
print(new_date)
輸出:
20-10-2021
因此,在您的情況下,請嘗試:
filtered_data['date'] = datetime.strptime(tweet['created_at'], '%a %b %d %H:%M:%S %z %Y').strftime(date_formats)
uj5u.com熱心網友回復:
如果你想要一個日期時間物件:
給予
tweet['created_at'] = 'Wed Oct 20 16:42:04 0000 2021'
用
input_format = '%a %b %d %H:%M:%S %z %Y'
filtered_data['date'] = datetime.strptime( \
tweet['created_at'], \
input_format)
結果是
>>> filtered_data['date']
datetime(2021, 10, 20, 16, 42, 4, tzinfo=datetime.timezone.utc)
如果你想要一個格式化的字串'%d-%m-%Y':
給予
tweet['created_at'] = 'Wed Oct 20 16:42:04 0000 2021'
用
input_format = '%a %b %d %H:%M:%S %z %Y'
output_format = '%d-%m-%Y'
filtered_data['date'] = datetime.strptime( \
tweet['created_at'], \
input_format).strftime(output_format)
結果是
>>> filtered_data['date']
'20-10-2021'
參考
見蟒蛇datetime.strptime和datetime.strftime
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331251.html
