将时间格式更改为字符串中的另一种时间格式

时间:2014-03-01 00:36:53

标签: python python-2.7

我想编写一个函数来更改时间格式,并使用偏移来移动日期

例如,我有一个字符串

“这是一个字符串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

任何人都可以帮忙修改/改进我的代码吗?

0 个答案:

没有答案