Thanks, that does help and now I have: >>> from datetime import datetime, tzinfo, timedelta >>> import time >>> class TZ(tzinfo): ... def utcoffset(self,dt): return timedelta(seconds=time.timezone) ... >>> print datetime(2008,2,29,15,30,11,tzinfo=TZ()).isoformat() 2008-02-29T15:30:11+8:00
But what I want to know now it how to get the actual time into the expression instead of typing the 2008,2,29,15.... So something like: >>> print datetime(time.gmtime(),tzinfo=TZ()).isoformat(), but that doesn't work. I realize that I could do: >>> t = time.gmtime() >>> print datetime(t[0],t[1],t[2],t[3],t[4],t[5],tzinfo=TZ()).isoformat() but I imagine there might be a cleaner way of doing this. Thanks, Nik On Jan 28, 9:10 pm, "Nicholas F. Fabry" <[EMAIL PROTECTED]> wrote: > Hello, nik. > > On Jan 28, 2008, at 21:03, nik wrote: > > > > > Hi, > > > How does one express the time in ISO format with the timezone > > designator? > > > what I want is YYYY-MM-DDThh:mm:ss.sTZD > > >> From the documentation I see: > >>>> from datetime import tzinfo, timedelta, datetime > >>>> class TZ(tzinfo): > > ... def utcoffset(self, dt): return timedelta(minutes=-399) > > ... > >>>> datetime(2002, 12, 25, tzinfo=TZ()).isoformat(' ') > > '2002-12-25 00:00:00-06:39' > > > and I've also figured out: > >>>> datetime.datetime.fromtimestamp(time.time()).isoformat()[:-3] > > '2008-01-23T11:22:54.130' > > > But can't figure out how to fit them together. > > There is nothing there to 'fit together' - in the first example given, > the datetime object has no time component specified, so it fills in > default vaules of zero. The following should make this clear: > > >>> your_time = datetime(2008, 2, 29, 15, 30, 11, tzinfo=TZ()) > >>> print your_time > 2008-02-29 15:30:11-05:00 > >>> print your_time.isoformat('T') > 2008-02-29T15:30:11-05:00 > > If you wish to append the NAME of the tzinfo object instead of its > offset, that requires a bit more playing around (along with a properly > defined tzinfo object - check out dateutil or pytz for a concrete > implementation of tzinfo subclasses (i.e. timezones)), but the > following would work: > > >>> print your_time.strftime('%Y-%m-%dT%H:%M:%S %Z') > 2008-02-29T15:30:11 EST > > For details on how the .strftime method works, see Python Standard > Library, Section 14.2. > > I hope this helps! > > Nick Fabry > > > Thank you, > > Nik > > -- > >http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list