from dateutil import parser, rrule
from dateutil.relativedelta import *
def time_conversion(sj, dayfirst=False, yearfirst=True, fuzzy_with_tokens=True, return_month=False):
"""
sj: 要转换的时间字符串;
dayfirst: 将不明确的3整数日期(例如01/05/09)中的第一个值解释为日(True)或月(False)。如果 yearfirst设置为True,则可以区分YDM和YMD
yearfirst: 否将模棱两可的3整数日期(例如01/05/09)中的第一个值解释为年份。如果为True,则第一个数字为年份,否则,最后一个数字为年份
fuzzy_with_tokens: 如果True,fuzzy将自动设置为True,并且其中所述第一元件是解析的解析器将返回的元组 datetime.datetimedatetimestamp和第二元件是含有被忽略该字符串的部分的元组
"""
if not sj:
return None
sj = str(sj)
if sj.isnumeric():
return datetime.datetime.fromtimestamp(int(sj) / 1000)
if '日' not in sj:
sj = sj.replace('年', '/').replace('月', '').replace('.', '/')
else:
sj = sj.replace('年', '/').replace('月', '/').replace('日', '').replace('.', '/')
date = parser.parse(sj, dayfirst=dayfirst, yearfirst=yearfirst, fuzzy_with_tokens=fuzzy_with_tokens)[0]
if return_month:
return str(date.year) + '-' + str(date.month)
else:
return date + relativedelta(day=1)
类时间文本转换成datetime类型(python)
最新推荐文章于 2022-11-19 15:31:38 发布