* src/DateParser.py: Better compliance with the RFC-2822.

svn: r3581
This commit is contained in:
Alex Roitman 2004-09-27 20:15:38 +00:00
parent 607fb35483
commit eacf050789
2 changed files with 22 additions and 4 deletions

View File

@ -1,5 +1,6 @@
2004-09-27 Alex Roitman <shura@alex.neuro.umn.edu> 2004-09-27 Alex Roitman <shura@alex.neuro.umn.edu>
* configure.in: Bump up the version number. * configure.in: Bump up the version number.
* src/DateParser.py: Better compliance with the RFC-2822.
2004-09-27 Don Allingham <dallingham@users.sourceforge.net> 2004-09-27 Don Allingham <dallingham@users.sourceforge.net>
* Release: Version 1.1.1 "Rat cake, rat sorbet, rat pudding, * Release: Version 1.1.1 "Rat cake, rat sorbet, rat pudding,

View File

@ -18,6 +18,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# #
# $Id$
""" """
U.S. English date parsing class. Serves as the base class for any localized U.S. English date parsing class. Serves as the base class for any localized
date parsing class. date parsing class.
@ -26,13 +28,28 @@ date parsing class.
__author__ = "Donald N. Allingham" __author__ = "Donald N. Allingham"
__version__ = "$Revision$" __version__ = "$Revision$"
#-------------------------------------------------------------------------
#
# Python modules
#
#-------------------------------------------------------------------------
import re import re
import time import time
import locale import locale
#-------------------------------------------------------------------------
#
# GRAMPS modules
#
#-------------------------------------------------------------------------
import Date import Date
#-------------------------------------------------------------------------
#
# Parser class
#
#-------------------------------------------------------------------------
class DateParser: class DateParser:
""" """
Converts a text string into a Date object. If the date cannot be Converts a text string into a Date object. If the date cannot be
@ -216,7 +233,7 @@ class DateParser:
re.IGNORECASE) re.IGNORECASE)
_numeric = re.compile("((\d+)[/\.])?((\d+)[/\.])?(\d+)") _numeric = re.compile("((\d+)[/\.])?((\d+)[/\.])?(\d+)")
_iso = re.compile("(\d+)-(\d+)-(\d+)") _iso = re.compile("(\d+)-(\d+)-(\d+)")
_rfc = re.compile("%s,\s+(\d\d)\s+%s\s+(\d+)\s+\d\d:\d\d:\d\d\s+(\+|-)\d\d\d\d" _rfc = re.compile("(%s,)?\s+(\d|\d\d)\s+%s\s+(\d+)\s+\d\d:\d\d(:\d\d)?\s+(\+|-)\d\d\d\d"
% (_rfc_day_str,_rfc_mon_str)) % (_rfc_day_str,_rfc_mon_str))
@ -325,9 +342,9 @@ class DateParser:
match = self._rfc.match(text) match = self._rfc.match(text)
if match: if match:
groups = match.groups() groups = match.groups()
d = self._get_int(groups[1]) d = self._get_int(groups[2])
m = self._rfc_mons_to_int[groups[2]] m = self._rfc_mons_to_int[groups[3]]
y = self._get_int(groups[3]) y = self._get_int(groups[4])
return (d,m,y,False) return (d,m,y,False)
match = self._numeric.match(text) match = self._numeric.match(text)