我在将字符串转换为数据格式时遇到问题。我正在使用时间模块将字符串转换为YYYY-MM-DD格式。下面的代码是我尝试过但我收到以下错误。
sre_constants.error: redefinition of group name 'Y' as group 5; was group 3
这是代码
import time
review_date = "April 18, 2018"
review_date = time.strptime(review_date, '%m %d %Y %I:%Y%m%d')
答案 0 :(得分:1)
首先,错误是因为您在%Y
电话中两次使用%m
,%d
和time.strptime()
。
其次,您使用的是错误的格式。传递给strptime()
的格式必须与您传递的日期/时间字符串的格式相匹配,在本例中为%B %d, %Y
。
This是对不同格式类型的一个很好的参考。
答案 1 :(得分:1)
我通常使用datetime
:
from datetime import datetime
review_date = "April 18, 2018"
review_date = datetime.strptime(review_date, '%B %d, %Y').strftime('%Y-%m-%d')
此代码返回review_date ='2018-04-18'。见https://docs.python.org/3/library/datetime.html
April
的日期格式为%B
。 strptime()
转换为日期时间对象,.strftime()
将datetime对象转换为字符串。
答案 2 :(得分:0)
review_date = time.strptime(review_date, '%B %d, %Y')
答案 3 :(得分:0)
time.strptime()用于解析字符串到日期/时间结构。它需要两个参数,即要解析的字符串和另一个描述要解析的字符串格式的字符串。
试试这个:
time.strptime("April 18, 2018", "%B %d, %Y")
...并注意“%B%d,%Y”是:
您提供的格式字符串规范与日期字符串的格式没有任何相似之处。
这些“神奇”格式代码在time.strftime()
的文档中列举