NSDate 日期的类
1.+date获取的时间无论在哪个区,都是打印相对应的零时区的时间
NSDate *date = [NSDate date];
NSLog(@"%@", date);
2.获取一下当前所在的时区
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSLog(@"%@", zone);
3.获取一下和0时区相差的秒数
NSInteger seconds = [zone secondsFromGMTForDate:date];
NSLog(@"%ld", seconds);
4.通过相差的秒数,能获取到现在的时间
NSDate *localDate = [NSDate dateWithTimeIntervalSinceNow:seconds];
5.
NSDate *times = [NSDate dateWithTimeIntervalSince1970:0];
NSLog(@"%@", times);
计算:
//一个明天这个时候的时间
NSDate *tomorrowDate = [NSDate dateWithTimeIntervalSinceNow:seconds + 3600*24];
NSLog(@"%@", tomorrowDate);
//一个昨天这个时候的时间
NSDate *yesterdayDate = [NSDate dateWithTimeIntervalSinceNow:seconds - 3600*24];
NSLog(@"%@", yesterdayDate);
NSTimeInterval interval = [tomorrowDate timeIntervalSinceDate:date];
NSLog(@"%g", interval);
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:1000];
NSTimeInterval times = [date1 timeIntervalSinceDate:date2];
if (times < 60) {
NSLog(@"刚刚");
}else if (times >= 60 && times <=3600){
NSLog(@"%ld分钟前", (NSInteger)times / 60);
}else if (times > 3600 && times < 3600*24){
NSLog(@"%ld小时前", (NSInteger)times / 3600);
}
NSDate *date = [NSDate date];
NSString *dateStr = [NSString stringWithFormat:@"%@", date];
NSLog(@"%@", dateStr);
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"];
NSDate *date = [NSDate date];
//通过格式,把制定的时间直接转换成NSString,通过这种方式,系统还会把时间切换成当前的时间
NSString *strDate = [formatter stringFromDate:date];
NSLog(@"%@", strDate);
(2)字符串 ->NSDate
时间又被减回去8小时
NSString *timeStr = @"2015-7-23 17-18-10";
NSDate *date = [formatter dateFromString:timeStr];
NSLog(@"%@", date);
NSSet 集合
NSSet 是无序的
NSSet不能有重复的元素
集合里的元素必须是对象类型
// NSSet *set = [[NSSet alloc]initWithObjects:@"1", @"2", @"3", @"4", @"5", nil]; //定义不可变集合
NSSet *set = [NSSet setWithObjects:@"1", @"2", @"6", @"3", @"5",@"2" ,nil];//定义不可变集合
NSLog(@"%@", set); //随机输出不重复的对象
NSLog(@"%ld", set.count); //输出不重复的个数
NSLog(@"%@", [set anyObject]);//返回其中的某一个元素
NSLog(@"%d", [set containsObject:@"3"]); //判断对象里有没有3
NSMutableSet *set = [NSMutableSet setWithObjects:@"1", @"2", @"3",@"4", nil]; //定义可变集合
NSLog(@"%@", set);
[set addObject:@"5”]; //添加元素
NSLog(@"%@", set);
[set removeObject:@"3”]; //删除元素
NSLog(@"%@", set);
for (NSString *temp in set) { //快速枚举
NSLog(@"%@", temp);
}
************************************************************************************************************************************
1.字面量方式创建值对象
NSNumber *num = @10;
2.把基本数据类型转换成对象类型
NSInteger a = 10;
NSNumber *number = [[NSNumber alloc]initWithInteger:a];
NSLog(@"%@", number);
3.NSNumber 转换成 Integer
NSInteger b = [number integerValue];
结构体和指针转与对象类型的转换
NSRange range = {2, 5}; //定义OC里的结构体 两个变量 (location ,length)
NSLog(@"%ld", range.length); //结果:5
NSLog(@"%ld", range.location); //结果:1
注意:结构体的.是访问成员变量,对象调用属性是点语法
NSValue *value = [NSValue valueWithRange:range];
NSLog(@"%@", value);
NSRange rangeV =[value rangeValue];
int a = 10;
int *p = &a;
NSValue *pointer = [NSValue valueWithPointer:p];
int *p1 = [pointer pointerValue];