我通過Gmail API解析電子郵件,並得到了以下日期格式:更改日期時間格式
Sat, 21 Jan 2017 05:08:04 -0800
我想把它轉換成ISO 2017-01-21
(YYYY-MM-DD)格式的MySQL存儲。我無法通過strftime()/ strptime()來做到這一點,我錯過了一些東西。有人可以幫忙嗎?
TIA
我通過Gmail API解析電子郵件,並得到了以下日期格式:更改日期時間格式
Sat, 21 Jan 2017 05:08:04 -0800
我想把它轉換成ISO 2017-01-21
(YYYY-MM-DD)格式的MySQL存儲。我無法通過strftime()/ strptime()來做到這一點,我錯過了一些東西。有人可以幫忙嗎?
TIA
isoformat()在dateutil中。
import dateutil.parser as parser
text = 'Sat, 21 Jan 2017 05:08:04 -0800'
date = (parser.parse(text))
print(date.isoformat())
print (date.date())
輸出:
2017-01-21T05:08:04-08:00
2017年1月21日
你可以用strptime()
做到這一點:
import datetime
datetime.datetime.strptime('Sat, 21 Jan 2017 05:08:04 -0800', '%a, %d %b %Y %H:%M:%S %z')
給你:
datetime.datetime(2017, 1, 21, 5, 8, 4, tzinfo=datetime.timezone(datetime.timedelta(-1, 57600)))
from datetime import datetime
s="Sat, 21 Jan 2017 05:08:04 -0800"
d=(datetime.strptime(s,"%a, %d %b %Y %X -%f"))
print(datetime.strftime(d,"%Y-%m-%d"))
輸出:2017年1月21日
謝謝。但它是拋出以下錯誤: 'ValueError:time data'Sat,21 Jan 2017 05:08:04 -0800'不符合格式'%a%d%b%Y%X - %f'' – chhibbz
@chhibbz對不起!!編輯的逗號缺少 – SmartManoj
謝謝..它現在有效 – chhibbz
你甚至可以做手工用簡單拆分和dictionary.That方式,你將擁有更多的格式控制。
def dateconvertor(date):
date = date.split(' ')
month = {'Jan': 1, 'Feb': 2, 'Mar': 3}
print str(date[1]) + '-' + str(month[date[2]]) + '-' + str(date[3])
def main():
dt = "Sat, 21 Jan 2017 05:08:04 -0800"
dateconvertor(dt)
if __name__ == '__main__':
main()
保持簡單。
謝謝...但我只需要日期...不是時間 – chhibbz
print(date.date())。這給你只是日期 – MSD
是的!...這就是我想要的。謝謝@saranya – chhibbz