On 02/13/2016 09:45 PM, Gary Herron wrote:
On 02/13/2016 12:27 PM, Tom P wrote:
On 02/13/2016 07:13 PM, Gary Herron wrote:
On 02/13/2016 09:58 AM, Tom P wrote:
I am writing a program that has to deal with various date/time formats
and convert these into timestamps. It looks as if
dateutil.parser.parse should be able to handle about any format, but
what I get is:
datetimestr = '2012-10-22 11:22:33'
print(dateutil.parser.parse(datetimestr))
result: datetime.datetime(2012, 10, 22, 11, 22, 33)
However:
datetimestr = '2012:10:22 11:22:33'
print(dateutil.parser.parse(datetimestr))
result: datetime.datetime(2016, 2, 13, 11, 22, 33)
In other words, it's getting the date wrong when colons are used to
separate YYYY:MM:DD. Is there a way to include this as a valid format?
Yes, there is a way to specify your own format. Search the datetime
documentation for
datetime.strptime(date_string, format)
Gary Herron
Thanks. I started out with datetime.strptime but AFAICS that means I
have to go through try/except for every conceivable format. Are you
saying that I can't use dateutil.parser?
Well now... If by "every conceivable format" you are including formats
that the author of dateutil.parser did not conceive of, then of course
you cannot use dateutil.parser. But you have the code for
dateutil.parser -- perhaps you could modify it to accept whatever odd
formats you care about.
Gary Herron
I had a look at the code for dateutil.parser. Have you looked at it?
Meanwhile I'm living with
try:
dt = datetime.datetime.strptime(datetimestr, '%Y:%m:%d %H:%M:%S')
except ValueError:
dt = dateutil.parser.parse(datetimestr)
unixtime = time.mktime(dt.timetuple())
--
https://mail.python.org/mailman/listinfo/python-list