Module: Parsing a String into a Date/Time Object Portably
Credit: Brett Cannon
Python’s
time module supplies the parsing function
strptime only on some platforms, and not on
Windows. Example 17-2 shows a
strptime
function that is a pure Python implementation of the
time.strptime function that comes with Python. It
is similar to how time.strptime is documented in
the standard Python documentation. It accepts two more optional
arguments, as shown in the following signature:
strptime(string, format="%a %b %d %H:%M:%S %Y", option=AS_IS, locale_setting=ENGLISH)
option’s default value of
AS_IS gets time information from the string,
without any checking or filling-in. You can pass
option as CHECK, so that the
function makes sure that whatever information it gets is within
reasonable ranges (raising an exception otherwise), or
FILL_IN (like CHECK, but also
tries to fill in any missing information that can be computed).
locale_setting accepts a locale tuple (as created
by LocaleAssembly) to specify names of days,
months, and so on. Currently, ENGLISH and
SWEDISH locale tuples are built into this
recipe’s strptime module.
Although this recipe’s strptime
cannot be as fast as the version in the standard Python library,
that’s hardly ever a major consideration for typical
strptime use. This recipe does offer two
substantial advantages. It runs on any platform supporting Python and
gives perfectly identical results on different platforms, while
time.strptime exists only on some platforms and tends ...