views:

31

answers:

1

Hey all, I am at a loss. I have an NSDate that gets passed to a UIDatePicker. When I am set to the Eastern time zone, all is fine.

When I am set to Central, the date picker shows the time as being off by 1 hour.

So, if I turn my NSLogs on, this is what I show:

2010-08-25 18:15:19.317[59299:207] ---- into the picker --->2010-08-25 17:37:51 -0500
2010-08-25 18:15:19.318[59299:207] Local Time Zone America/Chicago
2010-08-25 18:15:19.318[59299:207] 2010-08-25 17:37:51 -0500
2010-08-25 18:15:19.319[59299:207] current locale: en_US

But the UIDatePicker displays "Today 6:37 PM".

If I reset my timezone to Eastern, I get this:

2010-08-25 19:26:11.551[59521:207] ---- into the picker --->2010-08-25 18:37:51 -0400
2010-08-25 19:26:11.552[59521:207] Local Time Zone America/New_York
2010-08-25 19:26:11.552[59521:207] 2010-08-25 18:37:51 -0400
2010-08-25 19:26:11.553[59521:207] current locale: en_US

And the UIDatePicker displays "Today 6:37 PM".

Just wondering if anyone out there has seen this before. It looks like a timezone or daylight savings problem, but I can't seem to track it down.

Any help would be appreciated.

edit: I did some more testing with this and it seems like any timezone causes problems. It is almost like the UIDatePicker only wants to display in Eastern. I don't think I have anything set that would do that.

+1  A: 

I did some more searching. It sure helps if you use the correct search terms.

Anyhow, I found the answer on the iPhoneDevSDK - http://www.iphonedevsdk.com/forum/iphone-sdk-development/52533-uidatepicker-bug-ios-4-a.html - UIDatePicker bug.

It looks like there might be a UIDatePicker bug.

I added this to my code before I set the picker and it fixed the problem.

datePicker.timeZone = [NSTimeZone localTimeZone];

No more problem (for now).

John