我想编写一个函数来更改时间格式,并使用偏移来移动日期
例如,我有一个字符串
“这是一个字符串2012-04-12 23:55,带有2013-09-12时区”
我想将其更改为:
“这是一个字符串2012年4月20日13:40与2013年9月19日时区”
也就是说,数据格式从yyyy-mm-dd变为dd-bbb-yyyy,日期偏移。
我写了以下函数,但它只给出了
“这是一个字符串20-Jun-2012 13:40 with 2013-11-12 timezone” 但我想要像
这样的东西“这是一个字符串2012年4月20日13:40,2013年9月19日时区” 这是我的代码
import re
import time
import datetime
def _deIDReportDate(report, offset=654321):
redate = re.compile(r"""([0-9]+-[0-9]+-[0-9]+\s+[0-9]+:[0-9]+)|([0-9]+-[0-9]+-[0-9]+)""")
match = redate.search(report)
for match in redate.finditer(report):
dt = match.group()
if len(dt) > 10:
dt = datetime.datetime.strptime(dt, '%Y-%m-%d %H:%M')
dt += datetime.timedelta(seconds=offset)
new_time = dt.strftime('%d-%b-%Y %H:%M')
newReport = report[:match.start()] + new_time + report[match.end():]
return newReport
else:
dt = datetime.datetime.strptime(dt, '%Y-%m-%d')
dt += datetime.timedelta(seconds=offset)
new_time = dt.strftime('%d-%b-%Y')
newReport = report[:match.start()] + new_time + report[match.end():]
return newReport
任何人都可以帮忙修改/改进我的代码吗?