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

iOS中的时间和日期

  上图就是使用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);

}

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