W. eWatson wrote: > According to one web source, this program: > > import datetime > bree = datetime.datetime(1981, 6, 16, 4, 35, 25) > nat = datetime.datetime(1973, 1, 18, 3, 45, 50) > > difference = bree - nat > print "There were", difference, "minutes between Nat and Bree" > > yields: > There were 3071 days, 0:49:35 minutes between Nat and Bree > > That's fine, but I'd like to start with two dates as strings, as > "1961/06/16 04:35:25" and "1973/01/18 03:45:50" > > How do I get the strings into a shape that will accommodate a difference? > > For example, > t1=datetime.datetime.strptime("2009/01/02 13:01:15","%y/%m/%d %H:%M:%S") > doesn't do it. > ValueError: time data did not match format: data=2009/01/02 13:01:15 > fmt=%y/%m/%d %H:%M:%S
Here's how you'd do this with mxDateTime: http://www.egenix.com/products/python/mxBase/mxDateTime/ >>> from mx.DateTime import * >>> bree = DateTimeFrom("1981/06/16 04:35:25") >>> nat = DateTimeFrom("1973/01/18 03:45:50") >>> bree <mx.DateTime.DateTime object for '1981-06-16 04:35:25.00' at 2b99c7881088> >>> nat <mx.DateTime.DateTime object for '1973-01-18 03:45:50.00' at 2b99c6e342f0> Now, let's look at the date/time difference: >>> bree - nat <mx.DateTime.DateTimeDelta object for '3071:00:49:35.00' at 2b99c6e36500> i.e. 3071 days, 49 minutes, 35 seconds. If you want a more human readable, relative format use Age(): >>> Age(bree, nat) <RelativeDateTime instance for '(+0008)-(+04)-(+29) HH:(+49):(+35)' at 0x2b99c6e37ef0> i.e. 8 years, 4 months, 29 days, 49 minutes, 35 seconds. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Dec 29 2009) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::: Try our new mxODBC.Connect Python Database Interface for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/ -- http://mail.python.org/mailman/listinfo/python-list