[Zope] Problems using DateTime in dtml and python. Help...

Tres Seaver tseaver@palladion.com
Thu, 30 Mar 2000 10:37:22 -0600


> Date: Thu, 30 Mar 2000 01:47:36 -0500
> To: zope@zope.org
> Subject: 
> 
> I have been building an interface for call reports from a MySQL database
> on linux slackware 7 using
> recent source distributions of Zope ,MySql and python. Besides a messy
> bout with the ZMySQLDA
> source, which is now not an issue,  I've  done OK. The problems:
> 
> 1:
> 
>   I can call the DateTime() function from dtml like this-
>     <dtml-var "_.DateTime(a_later_time) - _.DateTime(an_earlier_time)">
> and I get what I need - a duration of time- but in days.  Is there a
> method to change this to
> minutes and seconds or do I just do my own math ... result * 24 * 60
> etc... Whenever I try to
> use the  DateTime  objects, eg fmt=DayOfWeek etc, I get invalid
> attribute errors.
> 
> 2:
> 
> I would rather do this work in an External Method, but when I try to use
> DateTime() in a method
> I get a Name Error when I try to update the Eternal Method in Zope.
> 
> So I went  to the python command line.
> >>> from DateTime import *
> Traceback (innermost last):
>  File "<stdin>", line 1, in ?
> ImportError:No module named DateTime
> 
> Obviously, I have some work to do, but what ? Recompile Python or Zope ?
> 
> How do I get DateTime to be recognized as a module?
> I noted that the contents of  the Setup file in
> /Zope/lib/python/DateTime are commented out-
>  # install DateTime.py
>  # install DateTimeZone.py
> I uncommented them for kicks and reinstalled Zope with the same results.
> 
> It seems to me I'm missing something OBVIOUS.
> And help greatly appreciated...
> David Troy

Convert the DateTime objects to seconds before subtracting::

  <dtml-let early="_.DateTime(an_earlier_time)"
            late="_.DateTime(a_later_time)"
    <dtml-var "_.float( late ) - _.float( early )">
  </dtml-let>

You can use '_.int(..)' or '_.long(..)', to, truncating to whole seconds.

Tres.
-- 
=========================================================
Tres Seaver  tseaver@digicool.com   tseaver@palladion.com