iOS 关于NSDate相关方法汇总

1.时间转字符串

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

   [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSDate *date = [NSDate date];

   NSString *currentstr = [formatter stringFromDate:date];

2.时间字符串转时间

 NSString *currentstr = @"2024-03-24";

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

    [formatter setDateFormat:@"yyyy-MM-dd HH:mm"];

    NSDate *currentdate = [formatter dateFromString:currentstr];

3. 将某个时间转化成 时间戳

+ (NSInteger)timeSwitchTimestamp:(NSString *)formatTime andFormatter:(NSString *)format{

    

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

    [formatter setDateStyle:NSDateFormatterMediumStyle];

    [formatter setTimeStyle:NSDateFormatterShortStyle];

    [formatter setDateFormat:format]; //(@"YYYY-MM-dd hh:mm:ss") ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制

    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];

    [formatter setTimeZone:timeZone];

    NSDate* date = [formatter dateFromString:formatTime]; //------------将字符串按formatter转成nsdate

    //时间转时间戳的方法:

    NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue];

    return timeSp;

    

}

4. 将某个时间戳转化成 时间

+ (NSString *)timestampSwitchTime:(NSInteger)timestamp andFormatter:(NSString *)format{

    

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

    [formatter setDateStyle:NSDateFormatterMediumStyle];

    [formatter setTimeStyle:NSDateFormatterShortStyle];

    [formatter setDateFormat:format]; // (@"YYYY-MM-dd hh:mm:ss")----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制

    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];

    [formatter setTimeZone:timeZone];

    NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:timestamp];

    NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];

    return confromTimespStr;

    

}

5. 获取当前时间戳

+ (NSString *)getNowTimeTimestamp{

    NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式

    NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[datenow timeIntervalSince1970]];

    return timeSp;

}

6.两个时间比较大小

+(NSInteger)compareDate:(NSDate* )aDate withDate:(NSDate* )bDate

{

    NSInteger tag = 0;

    NSComparisonResult result = [aDate compare:bDate];

    if(result == NSOrderedSame){

        //相等

        tag=0;

        

    }else if (result == NSOrderedAscending){

        //bDate比aDate大

     tag = 1;

    }else{

        //bDate比aDate小

        tag = -1;

      }

    return tag;

    

}

7.    给当前时间加几个小时几分钟

NSDate *datenow = [NSDate date];

  // 要加上的小时数

    NSInteger hoursToAdd = 5;

    //要加上的分钟

    NSInteger minToAdd = 20;

// 使用默认的日历获取组件

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *components = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:currentdate];

    // 修改分钟数

    components.minute += minToAdd;

    // 修改小时数

    components.hour += hoursToAdd;

   

     

    // 重新组合成新的日期

  NSDate *afterDate = [calendar dateFromComponents:components];

  • 34
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值