Basic date parsing usage with strftime in python -
this simple question on usage of date parsing symbols in strftime. given dates in following format:
mydt = "25-06 01:02:03" then attempt @ proper parsing string :
dateformat = '%d-%m %h:%m:%s' but apparently incorrect:
import dateutil.parser dateformat = '%d-%m %h:%m:%s' mydt = "25-06 01:02:03" dateutil.parser.parse(mydt).strftime(dateformat) valueerror: month must in 1..12 please suggest appropriate tweak/fix parsing pattern.
the dateutil.parser.parse() function takes no formatter. parses wide range of datetime formats without configuration.
use datetime.datetime.strptime() class method instead:
from datetime import datetime result = datetime.strptime(mydt, dateformat) take account without year in input, resulting datetime() object have year set 1900. can fix current year:
this_year = datetime.now().year result = result.replace(year=this_year) if need support february 29th in leap years, add year input , parse that:
dateformat = '%y %d-%m %h:%m:%s' year_prefix = '{:%y} '.format(datetime.now()) result = datetime.strptime(year_prefix + mydt, dateformat) demo:
>>> datetime import datetime >>> dateformat = '%d-%m %h:%m:%s' >>> datetime.strptime(mydt, dateformat) datetime.datetime(1900, 6, 25, 1, 2, 3) >>> this_year = datetime.now().year >>> datetime.strptime(mydt, dateformat).replace(year=this_year) datetime.datetime(2015, 6, 25, 1, 2, 3) >>> dateformat = '%y %d-%m %h:%m:%s' >>> year_prefix = '{:%y} '.format(datetime.now()) >>> datetime.strptime(year_prefix + mydt, dateformat) datetime.datetime(2015, 6, 25, 1, 2, 3)
Comments
Post a Comment