开发者

set date error on uidatepicker

I've been stumped by the code below. I pass a string date to a UIDatePicker which seems to work on most devices, yet on some, it crashes the app.

here's the code

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH:mm"];
NSDate *date = [dateFormat dateFromString:dateStr];
[timePicker setDate:date];
[dateFormat release];

I have a function which passes the "dateStr" variable, as follows, dateStr = @"0:0"; I cannot see what's wrong - as it works for me! (iphone 3.1.3) but it doesnt work for my tester (ipod touch 3.1.3)

Can anyone see anything wrong with the code?

Thanks v much. any ideas?开发者_如何学运维


Probably locale problem.

Try to set a common locale for the date formatter e.g.

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:usLocale];
[usLocale release];


You set your dateFormat to

[dateFormat setDateFormat:@"HH:mm"];

yet you pass it dateStr as dateStr = @"0:0";?

Try passing in dateStr = @"00:00"; which would actually conform to your formatter's format


All 12-hour locales define midnight as 12:00. The 24-hour (also known as military time) clock has 00:00 defined as midnight.

In your example you are "forcing" a string with an potentially unknown format on your UIDatePicker.

Check your locale settings and always specify the locale that goes with the string time representation, en_US, da_DK, et cetera.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜