homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Connor.Wolf
Recipients Connor.Wolf
Date 2014年12月04日.06:34:33
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1417674874.83.0.611673896272.issue22993@psf.upfronthosting.co.za>
In-reply-to
Content
I'm using plistlib to process plist files produced by an iphone app. Somehow, the application is generating plist files with a absolute date value along the lines of `0000年12月30日T00:00:00Z`.
This is a valid date, and the apple plist libraries can handle this without issue. However, it causes a ValueError if you load a plist containing it.
Minimal example:
python file: 
```
import plistlib
test = plistlib.readPlist('./test.plist')
```
plist file: 
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Test</key>
	<date>0000年12月30日T00:00:00Z</date>
</dict>
</plist>
```
This fails on both python3 and python2, with the exact same error:
```
herp@mainnas:/media/Storage/Scripts/pFail$ python3 test.py
Traceback (most recent call last):
 File "test.py", line 3, in <module>
 test = plistlib.readPlist('./test.plist')
 File "/usr/lib/python3.4/plistlib.py", line 164, in readPlist
 dict_type=_InternalDict)
 File "/usr/lib/python3.4/plistlib.py", line 995, in load
 return p.parse(fp)
 File "/usr/lib/python3.4/plistlib.py", line 325, in parse
 self.parser.ParseFile(fileobj)
 File "/usr/lib/python3.4/plistlib.py", line 337, in handle_end_element
 handler()
 File "/usr/lib/python3.4/plistlib.py", line 413, in end_date
 self.add_object(_date_from_string(self.get_data()))
 File "/usr/lib/python3.4/plistlib.py", line 291, in _date_from_string
 return datetime.datetime(*lst)
ValueError: year is out of range
herp@mainnas:/media/Storage/Scripts/pFail$ python test.py
Traceback (most recent call last):
 File "test.py", line 3, in <module>
 test = plistlib.readPlist('./test.plist')
 File "/usr/lib/python2.7/plistlib.py", line 78, in readPlist
 rootObject = p.parse(pathOrFile)
 File "/usr/lib/python2.7/plistlib.py", line 406, in parse
 parser.ParseFile(fileobj)
 File "/usr/lib/python2.7/plistlib.py", line 418, in handleEndElement
 handler()
 File "/usr/lib/python2.7/plistlib.py", line 474, in end_date
 self.addObject(_dateFromString(self.getData()))
 File "/usr/lib/python2.7/plistlib.py", line 198, in _dateFromString
 return datetime.datetime(*lst)
ValueError: year is out of range
herp@mainnas:/media/Storage/Scripts/pFail$
```
History
Date User Action Args
2014年12月04日 06:34:34Connor.Wolfsetrecipients: + Connor.Wolf
2014年12月04日 06:34:34Connor.Wolfsetmessageid: <1417674874.83.0.611673896272.issue22993@psf.upfronthosting.co.za>
2014年12月04日 06:34:34Connor.Wolflinkissue22993 messages
2014年12月04日 06:34:33Connor.Wolfcreate

AltStyle によって変換されたページ (->オリジナル) /