IOSUIDatePicker/时间选取器 实例以及时区的选择

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];

}

上面的代码对时间显示的格式以及时区进行了设定,运行后发现显示符合我们的要求。

原文地址:https://www.cnblogs.com/rollrock/p/2785596.html