使用arrow python将字符串转换为日期
我正在尝试使用使用arrow python将字符串转换为日期,python,date,datetime,python-datetime,Python,Date,Datetime,Python Datetime,我正在尝试使用arrow模块将字符串转换为日期。 在转换过程中,我收到了以下错误: arrow.parser.ParserMatchError:解析“2019年11月6日星期三03:05:42下午CDT”时,未能匹配“%A%d%B%Y%I:%M:%S%p%Z” 根据以下内容,使用一条简单的线进行转换: date=arrow.get(日期,“%A%d%B%Y%I:%M:%S%p%Z”) 我还尝试使用datetime执行此操作,但遇到另一个错误: ValueError:时间数据“2019年11月6日
arrow
模块将字符串转换为日期。
在转换过程中,我收到了以下错误:
arrow.parser.ParserMatchError:解析“2019年11月6日星期三03:05:42下午CDT”时,未能匹配“%A%d%B%Y%I:%M:%S%p%Z”
根据以下内容,使用一条简单的线进行转换:
date=arrow.get(日期,“%A%d%B%Y%I:%M:%S%p%Z”)
我还尝试使用datetime
执行此操作,但遇到另一个错误:
ValueError:时间数据“2019年11月6日星期三03:27:33 PM CDT”与格式“%A%d%B%Y%I:%M:%S%p%Z”不匹配。
我遗漏了什么?问题在于时区,硬编码时区在这里起作用
import datetime
datetime.datetime.strptime('Wednesday 06 November 2019 03:05:42 PM CDT', '%A %d %B %Y %I:%M:%S %p CDT')
尽管您可以将
'CDT'
硬编码到您的代码中,如@Hamza Rashid插入,但如果时区信息更改为其他内容,如'CST'
或'-0600'
,则会中断
为了避免潜在的问题,我改为使用如下内容,从字符串中的最后一个空格字符开始忽略字符串中的所有内容:
import datetime
date = 'Wednesday 06 November 2019 03:05:42 PM CDT'
date = datetime.datetime.strptime(date[:date.rindex(' ')], '%A %d %B %Y %I:%M:%S %p')
print(date) # -> 2019-11-06 15:05:42
什么是
arrow
模块?为什么要引用Python 2版本的strftime()
和strtime()
函数?@martineau a表示日期。我还使用datetime
编辑了这个问题。这里的硬编码时区类似于datetime.datetime.strtime('2019年11月6日星期三03:05:42 PM CDT','%A%d%B%Y%I:%M:%S%p CDT')