So, I got some help from StackOverflow on this one. Careful use of the dateutil library seemed to solve my problem. It is fairly robust and a much smaller footprint from PyTZ.
On Mar 10, 11:06 am, mawcs <mwilliam...@williamsonclan.us> wrote: > (I am new to Python and Google App Engine, please forgive me if my > questions seem basic). > > I'm having a helluva time trying to manage multiple user timezones in > my Google App Engine application. > > Here are my constraints: > > 1. If a user enters the time on an input, it will be local time > (including DST, when appropriate). > 2. If a user does not enter the time, the system must enter it for > them in their local time (including DST, when appropriate). > 3. When the date and time are displayed to the user, it must be in > their local time (including DST, when appropriate) > > I understand that time will be internally stored as UTC with a tzinfo > object and that the App Engine will store the Models with UTC time. > > I previously thought I had this all worked out by asking the user to > specify their time zone in their preferences. Then, I would simply > load their preferences and add that tzinfo to any datetime objects in > reference to that user. > > However, our recent daylight saving time broke it. It turns out that I > had not correctly implemented the dst() in my tzinfo objects. As I > understand it, I must determine if DST is currently on, and if so, > return the correct offset for the tzinfo. > > The problem is, I have no idea how to determine if the timezone's > daylight time is current or not. Am I missing something obvious? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---