iOS时间操作

1.获取当前年份月份

-(void)getYearAndMonthAndDay
{
    NSDate *currentDate = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSInteger unitFlags = NSCalendarUnitEra| NSCalendarUnitYear | NSCalendarUnitMonth |  NSCalendarUnitDay | NSCalendarUnitHour |NSCalendarUnitMinute| NSCalendarUnitSecond | NSCalendarUnitWeekday |  NSCalendarUnitWeekdayOrdinal | NSCalendarUnitQuarter | NSCalendarUnitWeekOfMonth| NSCalendarUnitWeekOfYear | NSCalendarUnitNanosecond |  NSCalendarUnitCalendar;
    NSDateComponents *components = [calendar components:unitFlags fromDate:currentDate];
    NSInteger era = [components era];
    NSInteger iCurYear = [components year];  //当前的年份
    NSInteger iCurMonth = [components month];  //当前的月份
    NSInteger iCurDay = [components day];  // 当前的号数
    NSInteger hour = [components hour];//时
    NSInteger minute = [components minute];//分
    NSInteger second = [components second];//秒
    NSInteger weekday = [components weekday];//周几
    NSInteger weekdayOrdinal = [components weekdayOrdinal];//
    NSInteger quarter = [components quarter];
    NSInteger weekofMonth = [components weekOfMonth];//月份中的第几周
    NSInteger weekofYear = [components weekOfYear];//年中的第几周
    //当前月份的总天数
    NSInteger totalDay = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:currentDate].length;
}

2.获取系统时间

时间格式@"yyyy-MM-dd HH:mm:ss"注意月份和小时MM和HH需要大写

- (NSString *)dateToString {
    NSDate *date = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *dateString = [dateFormatter stringFromDate:date];
    return dateString;
}

3.获取之前日期

-(NSDate *)getBeforeDate:(NSDate *)currentDate
{
    NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
    //设置年份正数年份加,负数年份减,其他的一样
    [offsetComponents setYear:20];
    [offsetComponents setMonth:-4];
    NSDate *newDate = [calendar dateByAddingComponents:offsetComponents toDate:currentDate options:NSCalendarMatchStrictly];
    return newDate;
}

4.时间戳

-(void)getTimeInterval
{
    //从1970年到现在的秒数,返回来的NSTimeInterval是double类型,后面有6位小数点,如果要精确到毫秒就*1000
    NSTimeInterval interval1970 = [[NSDate date] timeIntervalSince1970];
    
    //从现在开始的时间戳
    NSTimeInterval intervalNow = [[NSDate date] timeIntervalSinceNow];

    //时间戳转为时间,注意iOS的时间戳转为时间是精确都秒的,是10位的时间戳,Java返回来的可能是13位的,精确到毫秒,转化的时候需要(/1000)先
    NSDate* date = [NSDate dateWithTimeIntervalSince1970:interval1970];
}

你可能感兴趣的:(iOS时间操作)