problem with dateutil

Tom P werotizy at freent.dd
Sun Feb 14 07:26:00 EST 2016


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())



More information about the Python-list mailing list