您的位置:首页 > 其它

NSDate获取当前时间、间隔、年月日、转NSString等方法总结

2018-02-01 13:01 399 查看
一、以NSString形式获取当前时间

-(NSString*)getCurrentTimes{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
//现在时间,你可以输出来看下是什么格式
NSDate *datenow = [NSDate date];
//----------将nsdate按formatter格式转成nsstring
NSString *currentTimeString = [formatter stringFromDate:datenow];
NSLog(@"currentTimeString = %@",currentTimeString);
return currentTimeString;
}二、分别单独获得年、月、日

NSDate *date =[NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

[formatter setDateFormat:@"yyyy"];
NSInteger currentYear=[[formatter stringFromDate:date] integerValue];
[formatter setDateFormat:@"MM"];
NSInteger currentMonth=[[formatter stringFromDate:date]integerValue];
[formatter setDateFormat:@"dd"];
NSInteger currentDay=[[formatter stringFromDate:date] integerValue];

NSLog(@"currentDate = %@ ,year = %ld ,month=%ld, day=%ld",date,currentYear,currentMonth,currentDay);三、获得时间间隔:



四、获取星期几:

这里我是封装了一个方法,代码如下:

-(void)setDate{
NSDate *date =[NSDate date];
//获取星期几
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *comps = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSCalendarUnitWeekday ;
comps = [calendar components:unitFlags fromDate:date];
NSInteger week = [comps weekday];
NSLog(@"week == %zd",week);
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy"];
NSString *currentYear=[formatter stringFromDate:date];
[formatter setDateFormat:@"MM"];
NSString *currentMonth=[formatter stringFromDate:date];
self.monthAndYearLabel.text=[NSString stringWithFormat:@"%@/%@",currentMonth,currentYear];
[formatter setDateFormat:@"dd"];
NSString *currentDay=[formatter stringFromDate:date];
self.dayLabel.text = currentDay;
switch (week) {
case 1:
self.weekdayLabel.text = @"星期日";
break;
case 2:
self.weekdayLabel.text = @"星期一";
break;
case 3:
self.weekdayLabel.text = @"星期二";
break;
case 4:
self.weekdayLabel.text = @"星期三";
break;
case 5:
self.weekdayLabel.text = @"星期四";
break;
case 6:
self.weekdayLabel.text = @"星期五";
break;
case 7:
self.weekdayLabel.text = @"星期六";
break;
default:
self.weekdayLabel.text = @"";
break;
}
}

总结可知,不同时间形式的获取,主要靠NSDateFormatter这个类的对象的设置。例如,如果还想要获得“ 9:00AM”的形式,可以设置其格式为“hh:mmaaa”等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: