iOS中的时间和日期
获取北京时间(上海时间\(^o^)/~)
+ (NSString *) getCurrentDateStr{
NSDate * date = [NSDate date];
NSDateFormatter * format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-dd hh:mm:ss";
NSTimeZone * tz = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
format.timeZone = tz;
NSString * dStr = [format stringFromDate:date];
return dStr;
}
怎么说?时间和日期不是了不起的属性、了不起的功能,但是,我们决不能够因此就“冷落”它。
一:怎么“搞到货”--如何获取时间、日期
//-=-==当前时间------默认显示“0时区”时间 NSDate * date1=[NSDate date]; //=-=-时间戳 //--1,该时间距1970年60秒 NSDate * date2=[NSDatedateWithTimeIntervalSince1970:60]; //--2,2000年 NSDate * date3=[NSDate dateWithTimeIntervalSinceReferenceDate:60*60]; //-=--=-=---现在开始"NSTimeInterval"之后的时间 NSDate * date4=[NSDate dateWithTimeIntervalSinceNow:60*60]; //-=-=-一个日期“date1”之后“timeinterval”秒的日期 NSDate * date5=[NSDate dateWithTimeInterval:60sinceDate:date1];
二: 得到日期和时间之后,格式可能“不是我想要的”,怎么办?
日期的格式化类:NSFormatter,通过这个类可以得到你想要的格式,但是,注意在一定的基础上进行格式化:
yyyy / yy :年份 2012 / 12
MM : 月份
dd : "日份"
HH :时
mm : 分
ss :秒
a :AM / PM (12小时格式时选用)
zzz : 时区
EEEE :星期几
格式化之后的字符串还能够转换回原来的NSDate类型,但是,该字符串要遵守格式;(时间默认是0时区,但转换之后就是你的当前所在时区)
/** 日期格式化类 :NSFormatter:NSObject */ NSDateFormatter * formatter=[[NSDate Formatter alloc] init]; //-------=时间转换成字符串=-------- formatter.dateFormat=@"yyyy举MM头dd望HH明mm月ss a王zzz王EEEE"; NSString * dateStr=[formatter stringFromDate:date1]; NSLog(@"时间转成字符串:%@",dateStr); //-------=字符串转换成日期-----===== /** 字符串转过来的时间是“当前时区的时间” */ NSString * string=@"2016举06头28望17明54月41 PM王GMT+8王Tuesday"; NSDate * strDate=[formatter dateFromString:string]; NSLog(@"字符串转时间:%@",strDate);
三: 两个日期的早晚比较
/** 比较日期 */ BOOL flag=[date1 isEqualToDate:date2]; if (flag==NO) { NSLog(@"低头思故乡"); } //--=比较两个日期的早晚---= /** 返回较早的时间 */ NSDate * date6=[date1 earlierDate:date2]; NSLog(@"%@",date6); /** 返回晚的时间 */ NSDate * date7=[date1 laterDate:date2]; NSLog(@"%@",date7); }
四: 日期的控件--UIDatePicker
上图就是使用UIDatePicker选择闹钟的时间;
如何使用之?
UIDatePicker * picker=[[UIDatePickeralloc] initWithFrame:CGRectMake(0, 200,kWidth, kHeight)]; picker.backgroundColor=[UIColor cyanColor]; [picker addTarget:selfaction:@selector(changeAction:) forControlEvents:UIControlEventValueChanged]; /** 确定显示的格式:时间、日期、时间+日期 */ picker.datePickerMode=UIDatePickerModeDateAndTime; [self.view addSubview:picker];
就是这么easy。
UIDatePicker : UIControl 可以添加事件 (addTarget) 触发事件的方式:UIControlEventValueChanged
#pragma mark - 值改变的监听事件 - (void) changeAction:(UIDatePicker *) p{ NSLog(@"%@",p.date); }
意欲捕鸣蝉,忽然闭口立。