- 获取当天星期,月份,年份
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDate *now = [NSDate date];
NSDateComponents *componets = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday ;
componets = [calendar components:unitFlags fromDate:now];
NSInteger weekday = [componets weekday];
- 将NSDate 转换为 NSString
// 将NSDate 中的数据提取出来,组成字符串
// 第一步:日期对象
NSDate * nowDate = [NSDate date];
// 第二步:创建NSDateFormatter对象
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
// 第三步:设定日期转换的格式(提起数据的方式)
[formatter setDateFormat:@"yyyy/MM/dd"]; //yyyy 年 MM 月 dd 日
// eeee星期 MMMM大写月份 QQQQ季度 zzzz时区 hh:mm:ss 时:分:秒
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss eeee MMMM QQQQ zzzz" ];
// 第四步:转换
NSString * timeStr = [formatter stringFromDate:nowDate];
NSLog(@"%@",timeStr);
- 将NSString转换为NSDate:将NSString中包含的与日期有关的信息提取出来,创建NSDate对象
// 第一步:包含信息的字符串
NSString * timeStr = @"2014年05月01日 10点23分18秒";
// 第二步:创建NSDateFormatter对象
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
// 第三步:设置日期转换格式(必须匹配)
[formatter setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
//[formatter setDateFormat:@"yyyy年MM月dd日 hh点mm分ss秒"];
// 第四步:转换
// NSDate * date = [formatter dateFromString:timeStr];
NSDate * date = [formatter dateFromString:timeStr];
NSLog(@"%@", date);
- -------------计算时间间隔 在新闻时候应该可以用到--------------
NSDate * newTime = [NSDate date];
NSString * timeStr = @"2015-12-12 00:30:20";
NSDateFormatter * formater = [[NSDateFormatter alloc]init];
[formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate * date = [formater dateFromString:timeStr];
NSTimeInterval inter = [newTime timeIntervalSinceDate:date];
if (inter < 60 ) {
NSLog(@"刚刚");
} else if (inter < 3600 && inter > 60){
inter /= 60;
NSLog(@"%f分钟前",inter);
} else if (inter > 3600 ){
inter /= 3600;
NSLog(@"%f小时前",inter);
}
- 获取当前的时间
// 下面的第一个方法不提倡
// NSDate *now1 = [[NSDate alloc]initWithTimeIntervalSinceNow:8*60*60];
// NSLog(@"now %@",now1);
//
NSDate * today = [NSDate date];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate:today];
NSDate *localeDate = [today dateByAddingTimeInterval:interval];
// 时间转换成时间戳
NSString *timeSp = [NSString stringWithFormat:@"%ld",(long)[localeDate timeIntervalSince1970]];
NSLog(@"timeSp : %@", timeSp);
- 时间戳转换成时间类型(NSDate) 这个很久写的,有点乱,自己看吧
时间戳转换成日期
NSDate *currentTime = [NSDate dateWithTimeIntervalSince1970:[timeSp intValue]];
NSLog(@"currentTime %@",currentTime);
NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"yyyy-MM-dd HH:MM:ss"];
NSString * locationString=[dateformatter stringFromDate:currentTime];
NSLog(@"LocationString %@",locationString);
// -------------------------
NSDate *currentTime2 = [NSDate date];
NSLog(@"currentTime2 %@",currentTime2);
NSString *timeSp2 = [NSString stringWithFormat:@"%ld",(long)[currentTime2 timeIntervalSince1970]];
NSDate * current = [NSDate dateWithTimeIntervalSince1970:[timeSp2 intValue]];
NSDateFormatter *dateformatter2=[[NSDateFormatter alloc] init];
[dateformatter2 setDateFormat:@"yyyy-MM-dd HH:MM:ss"];
NSString * locationString2 =[dateformatter2 stringFromDate:current];
NSLog(@"LocationString2 %@",locationString2);