将包含许多日期的字符串转换为日期时间



如果我的字符串只包含一个日期,我会使用这个:

datetime.datetime.strptime(string, '%b %d %Y').strftime('%Y-%m-%d')

但是由于沿线有很多,我不知道如何进行。如何读取字符串并仅在需要时进行更改?

所以这是我的字符串:

s = 'Mar 27 2000*56.75*58.39*Mar 26 2000*53.10*56.13*Mar 25 2000*51.50*52.00'

以及我之后的期望:

s = '2000-03-27*56.75*58.39*2000-03-26*53.10*56.13*2000-03-25*51.50*52.00'

如果所有字符串日期的格式都相同,您可以使用正则表达式来获取字符串中的日期,然后替换它,我在想这样的事情:

import re
import datetime
def operate_on_replacement(matchObj):
match = matchObj.group(0)
return datetime.datetime.strptime(match, '%b %d %Y').strftime('%Y-%m-%d')
start_string = 'Mar 27 2000*56.75*58.39*Mar 26 2000*53.10*56.13*Mar 25 2000*51.50*52.00'
replaced_string = re.sub(r'w{3}s{1}d{2}s{1}d{4}', operate_on_replacement, start_string)

你可以做一个

new_s = s.split("*")

然后在日期时间格式的列上使用代码。

最新更新