获取当前时间、星期等

  1. 获取当天星期,月份,年份
    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];

  1. 将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);
  1. 将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);
  1. -------------计算时间间隔 在新闻时候应该可以用到--------------
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);
}
  1. 获取当前的时间
    // 下面的第一个方法不提倡
//     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);
  1. 时间戳转换成时间类型(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);

你可能感兴趣的:(获取当前时间、星期等)