UIDatePicker 其实就是时间选取器,在IOS开发的过程中用到的非常多。
1.首先将Date Picker 以及 Round Rect Button拖动到 xib窗口中。
2.在controller.h中实现如下
#import <UIKit/UIKit.h>
@interface CRViewController : UIViewController
{
UIDatePicker * datePicker;
}
@property(retain,nonatomic) IBOutletUIDatePicker * datePicker;
-(IBAction) buttonPressed;
@end
3.在 controller.m中实现如下
@synthesize datePicker;
-(IBAction)buttonPressed
{
NSDate * selected = [self.datePicker date];
NSString * message = [[NSString alloc] initWithFormat:@"time is %@" , selected];
UIAlertView * alert = [[UIAlertViewalloc] initWithTitle:@"YOU"message:message delegate:nilcancelButtonTitle:@"OK"otherButtonTitles:nil ,nil];
[alert show];
[alert release];
[message release];
}
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSDate * now = [[NSDate alloc] init];
[datePickersetDate:now animated:NO];
[now release];
}
4.然后设置button的出发事件为buttonPressed,date picker的输出口为 datePicker
5.运行程序,选择事件,点击button,会发现好像“小时”显示的跟我们选择的是不一样的,这就设计到一个“时区”问题。
如果没有设置特点的时区,那系统使用的就是标准的0时区,而我们使用的是+8时区,所以需要对代码进行如下修改。
@synthesize datePicker;
-(IBAction)buttonPressed
{
NSDate * selected = [self.datePicker date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm +0800"];
NSString * message = [dateFormatter stringFromDate:selected];
UIAlertView * alert = [[UIAlertViewalloc] initWithTitle:@"YOU"message:message delegate:nilcancelButtonTitle:@"OK"otherButtonTitles:nil ,nil];
[alert show];
[alert release];
[dateFormatter release];
}
上面的代码对时间显示的格式以及时区进行了设定,运行后发现显示符合我们的要求。