【发布时间】:2026-02-20 15:45:01
【问题描述】:
我在使用 UIDatePicker 时遇到了一些奇怪的问题。我查看了论坛,但提供的答案没有任何运气。
假设我选择了一个日期,2010 年 11 月 20 日 EN_AUS 语言环境。当我 NSLog 它时,日期属性是 2010-11-19 13:00:00 +0000。但是当我格式化并显示在标签中时,它看起来是正确的,即 20/11/2010?!
我保存此日期,以便用户下次进入此视图时,uiDatePicker 应自动设置为最后选择的日期。但它只是没有发生,它仍然显示当前日期。
我已经在下面列出了重要的代码,感谢任何建议:)
// setting up the uiDatePicker
NSLocale *ozLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_AUS"];
self.datePicker.calendar = [NSCalendar autoupdatingCurrentCalendar];
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:39600]]; // Melbourne time zone
[self.datePicker setLocale:ozLocale];
self.datePicker.timeZone = [NSTimeZone localTimeZone];
[ozLocale release];
// displaying the date from the uidatePicker
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterShortStyle];
self.dateLabel.text = [dateFormatter stringFromDate:self.datePicker.date];
[dateFormatter release];
// In viewWillAppear I set the uiDatePicker. lastDatePicked has the value of 2010-11-19 13:00:00 +0000 at this point
[self.datePicker setDate:self.appDelegate.lastDatePicked animated:FALSE];
【问题讨论】:
-
这不是足够的代码。您必须在保存期间显示您保存此时间的代码和日期格式。 lastDatePicked 属性的声明。
标签: iphone date uidatepicker