Personal tools
Contact Us 24/7 > 1 866.SIX FEET
Sections

Skip to content. | Skip to navigation

Home > Blog > Zope DateTime, Careful with that Dash, Eugene

Blog

Zope DateTime, Careful with that Dash, Eugene

written by david on Tuesday October 16, 2012
Comments | Filed under: , ,

Zope DateTime

The Zope DateTime library is used in several places inside of Plone. As part of the Plone 4 release cycle, the underlying Zope version was upgraded from 2.10 to 2.12. Tucked away in this version of the DateTime library is this:

Note that the Zope DateTime parser assumes timezone naive ISO strings to be in UTC rather than local time as specified.

This is an unexpected behavior change that can bite you in various ways. For example, in previous versions of Plone this is what happened:

>>> from DateTime import DateTime
>>> dash_date = '2012-10-03'
>>> slash_date = '2012/10/03'
>>> DateTime(dash_date)
DateTime('2012/10/03')
>>> DateTime(slash_date)
DateTime('2012/10/03')

In the current version, this happens instead:

>>> from DateTime import DateTime
>>> dash_date = '2012-10-03'
>>> slash_date = '2012/10/03'
>>> DateTime(dash_date)
DateTime('2012/10/03 00:00:00 GMT+0')
>>> DateTime(slash_date)
DateTime('2012/10/03 00:00:00 GMT-4')

Note the timezone change: one gets parsed into UTC, the other the local machine timezone. This is because the parser is using the ISO format due to the dashes in the string. This led to several unexpected behavior changes:

If you're writing custom code for Plone 4, it is a good idea to double-check how your application processes date / time input to ensure the timezone is correctly handled.

 
Posted by Ida Ebkes on Feb 13, 2013 02:59 PM
Thank you very much for this enlightening and compact explanation! Regards, Ida
Add comment

You can add a comment by filling out the form below. Plain text formatting.

puzzle

Next Steps


Select a type of support:

Contact our sales team

First Name:  
Last Name:  
Email Address:  
Phone Number:
Message:  
Fight spam:
What is + ?  
 
Call Us 1 866.SIX FEET
Sections