UIDatePicker常用属性 NSDateFormatter 时间戳转为本地时间

一、UIDatePicker常用属性

UIDatePicker的继承关系:UIDatePicker:UIControl:UIView:UIResponder:NSObject

- (void)viewDidLoad
{
    [super viewDidLoad];

    /**
     1、初始化 和 配置DatePicker模式
     .datePickerMode        UIDatePickerModeTime,           //时间模式,显示 时 分 上下午
                            UIDatePickerModeDate,           //日期模式,显示 年 月 日
                            UIDatePickerModeDateAndTime,    //时间和日期模式,显示星期 月 日、时 分 上下午
                            UIDatePickerModeCountDownTimer, //计时模式,显示 时 分
     */
    UIDatePicker *datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(10, 50, 300, 100)];
    datePicker.datePickerMode = UIDatePickerModeDateAndTime;
    [self.view addSubview:datePicker];

    [datePicker addTarget:self action:@selector(datePickerAction:) forControlEvents:UIControlEventValueChanged];




    /**
     2、管理Date 和 Calendar
        .calendar          (NSCalendar)        //设置日历
        .locale            (NSLocale)          //设置本地化环境
        .timeZone          (NSTimeZone)        //设置时区
        .date              (NSDate)            //设置当前时间
        - setDate:animated:
     */
    datePicker.calendar = [NSCalendar currentCalendar];
    datePicker.locale = [NSLocale currentLocale];
    datePicker.timeZone = [NSTimeZone localTimeZone];
    datePicker.date = [NSDate dateWithTimeIntervalSince1970:1445915340];



    /**
     3、配置时间属性
        .minimumDate       (NSDate)            //设置最小时间点
        .maximumDate       (NSDate)            //设置最大时间点
        .minuteInterval                        //设置每一格的时间差
        .countDownDuration (NSTimeInterval)    //设置时间。注意:只适用于计时模式
     */
    datePicker.minimumDate = [self dateFromString:@"2015-01-01 00:00:00" formatter:@"yyyy-MM-dd HH:mm:ss"];
    datePicker.maximumDate = [self dateFromString:@"2016-01-01 00:00:00" formatter:@"yyyy-MM-dd HH:mm:ss"];
    datePicker.minuteInterval = 2;

}
-(void)datePickerAction:(UIDatePicker *)datePicker
{
    NSLog(@"date:%@",[self stringFromDate:datePicker.date formatter:@"yyyy-MM-dd HH:mm:ss"]);
    NSLog(@"calendar:%@",datePicker.calendar);
    NSLog(@"locale:%@",datePicker.locale);
    NSLog(@"timeZone:%@",datePicker.timeZone);
}

这里写图片描述

二、日期格式NSDateFormatter

//补充:日期格式NSDateFormatter
-(NSDate *)dateFromString:(NSString *)dateStr formatter:(NSString *)formatter
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    dateFormatter.dateFormat = formatter;
    NSDate *date = [dateFormatter dateFromString:dateStr];     //字符串转时间
    return date;
}
-(NSString *)stringFromDate:(NSDate *)date formatter:(NSString *)formatter
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
    dateFormatter.dateFormat = formatter;
    NSString *dateStr = [dateFormatter stringFromDate:date];     //时间转字符串,世界时间转换为本地时间
    return dateStr;
    /*  @"yyyy年-MM月-dd日 HH:mm:ss"
     yyyy   包括纪元的四位数的年份。
     yy     不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。

     MM 月份数字。一位数的月份有一个前导零。
     M 月份数字。一位数的月份没有前导零。

     dd 月中的某一天。一位数的日期有一个前导零。
     d 月中的某一天。一位数的日期没有前导零。

     HH 24 小时制的小时。一位数的小时数有前导零。
     H 24 小时制的小时。一位数的小时数没有前导零。
     hh 12 小时制的小时。一位数的小时数有前导零。
     h 12 小时制的小时。一位数的小时数没有前导零。

     mm 分钟。一位数的分钟数有一个前导零。
     m 分钟。一位数的分钟数没有前导零。

     ss 秒。一位数的秒数有一个前导零。
     s 秒。一位数的秒数没有前导零。
     */
}

三、时间戳转为本地时间
1、时间戳转为本地时间

-(NSString *)getTimeWithTimeStamp:(NSString *)str
{
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init] ;
    [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"shanghai"]] ;
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [formatter setDateFormat:@"yyyy-MM-dd  hh:mm:ss"];

    NSDate* date = [NSDate dateWithTimeIntervalSince1970:str.intValue];    //核心代码
    NSString* dateString = [formatter stringFromDate:date];
    return dateString;
}

2、通过时间戳来 剩余时间的计算

-(NSString *)hasDaysWithUserInfoDays:(NSString *)str
{
    NSInteger returnDays = str.integerValue;

    NSTimeInterval a=[[NSDate dateWithTimeIntervalSinceNow:0] timeIntervalSince1970];
    NSString *timeString = [NSString stringWithFormat:@"%f", a];
    NSInteger currentDays = timeString.integerValue;


    NSInteger days = (returnDays -currentDays)/24/60/60;
    NSString *hasDays = [NSString stringWithFormat:@"%ld",(long)days];

    return hasDays;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值