iOS中的时间和日期

时间:2023-04-11 09:16:56

获取北京时间(上海时间\(^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:]; //--2,2000年
NSDate * date3=[NSDate dateWithTimeIntervalSinceReferenceDate:*]; //-=--=-=---现在开始"NSTimeInterval"之后的时间
NSDate * date4=[NSDate dateWithTimeIntervalSinceNow:*]; //-=-=-一个日期“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

iOS中的时间和日期

上图就是使用UIDatePicker选择闹钟的时间;

如何使用之?

UIDatePicker * picker=[[UIDatePickeralloc] initWithFrame:CGRectMake(, ,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); }

意欲捕鸣蝉,忽然闭口立。