我正在解析excel文档并获取日期时间值......
我使用dateutil将其转换为python datetime值...
例如,如果传入的值是'2012',我需要一种方法来理解只有年份
或如果值为'13:05',则仅给出小时分钟。
from dateutil.parser import *
def convertToDatetime(inValue):
#if inValue is '2012' i need a way to understand only year is given. Can i do this while parse method is used?
rVal = parse( inValue )
return rVal
我怎样才能做到这一点?
-----编辑----
我也可以这样问这个问题:
如果只给出年份,则dateutil以今天的值完成日期和月份...但是如果只给出年份,我需要月和日的空值...
答案 0 :(得分:0)
此功能尚未在dateutil模块中实现。不过,您可以根据需要修改此snippet。
from dateutil import parser
from datetime import datetime
import warnings
def double_parse(dt_str):
dflt_1 = datetime(1, 1, 1)
dflt_2 = datetime(2, 2, 2)
dt1 = parser.parse(dt_str, default=dflt_1)
dt2 = parser.parse(dt_str, default=dflt_2)
if dt2.year != dt1.year:
warnings.warn('Year is missing!', RuntimeWarning)
return dt1.replace(year=datetime.now().year)
return dt1
if __name__ == "__main__":
print(double_parse('2017-04-05'))
# 2017-04-05 00:00:00
print(double_parse('03:45 EST'))
# stderr: RuntimeWarning: Year is missing!
# 2017-01-01 03:45:00-05:00