我通过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