收藏的一些代码片段(持续更新)

//获取当前系统时间
-(NSString *)getSystemTime
{
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString* dateTime= [formatter stringFromDate:[NSDate date]];
   // DLog(@"UnixFormat = %@", [self timeStamp:dateTime]);
   // DLog(@"TimeFormat = %@", [self formatTime: [self timeStamp:dateTime]]);
    return dateTime;
}

//标准时间转化为时间戳
-(NSString*)timeStamp:(NSString*)str
{
    NSDateFormatter* formater = [[NSDateFormatter alloc] init];
    [formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate* date = [formater dateFromString:str];
    NSString *timeSp = [NSString stringWithFormat:@"%.f", [date timeIntervalSince1970]];
    return timeSp;
}

//时间戳转换成标准时间
- (NSString*)formatTime:(NSString*)str
{
    NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[str intValue]];
    NSString * dateTime = [formatter stringFromDate:date];
    return dateTime;
}

//时间戳转换成标准时间
- (NSString*)formatTime:(NSString*)str format:(NSString *)format
{
    NSDateFormatter* formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:format];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[str intValue]];
    NSString * dateTime = [formatter stringFromDate:date];
    return dateTime;
}

// 求时差
- (NSString*)timeDifference:(NSString*)newTime ToOld:(NSString *)oldTime
{
    double dateTimeValue = newTime.doubleValue - oldTime.doubleValue;
    NSString *dateTime = [self timeStringByTimeValue:dateTimeValue];
    return dateTime;
} <pre name="code" class="objc">//根据时间戳得到对应的时间字符串
- (NSString *)timeStringByTimeValue:(double)dateTimeValue
{
    NSInteger h = (int)dateTimeValue / 3600;
    NSInteger m = ((int)dateTimeValue - h * 3600)/60;
    NSInteger s = (int)dateTimeValue - 3600 * h - m * 60;
    NSString *h_s = [self getTime:h];
    NSString *m_s = [self getTime:m];
    NSString *s_s = [self getTime:s];
    
    NSString *dateTime = [NSString stringWithFormat:@"%@:%@:%@",h_s,m_s,s_s];
    return dateTime;
}

//计算一段字符串的长度,两个英文字符占一个长度。
- (int)countTheStrLength:(NSString*)str
{
    int strlength = 0;
    char* p = (char*)[str cStringUsingEncoding:NSUnicodeStringEncoding];
    for (int i=0 ; i<[str lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
        if (*p) {
            p++;
            strlength++;
        }
        else {
            p++;
        }
    }
    return (strlength+1)/2;
}

//获取Document目录路径
-(NSString *)getDocumetPath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDir = [paths objectAtIndex:0];
    return docDir;
}

//判断NSString字符串是否包含emoji表情
- (BOOL)stringContainsEmoji:(NSString *)string
{
    __block BOOL returnValue =NO;
    [string enumerateSubstringsInRange:NSMakeRange(0, [string length]) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
        const unichar hs = [substring characterAtIndex:0];
        // surrogate pair
        if (0xd800) {
            if (0xd800 <= hs && hs <= 0xdbff) {
                if (substring.length > 1) {
                    const unichar ls = [substring characterAtIndex:1];
                    const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
                    if (0x1d000 <= uc && uc <= 0x1f77f) {
                        returnValue =YES;
                    }
                }
            }else if (substring.length > 1) {
                const unichar ls = [substring characterAtIndex:1];
                if (ls == 0x20e3) {
                    returnValue =YES;
                }
            }else {
                // non surrogate
                if (0x2100 <= hs && hs <= 0x27ff) {
                    returnValue =YES;
                }else if (0x2B05 <= hs && hs <= 0x2b07) {
                    returnValue =YES;
                }else if (0x2934 <= hs && hs <= 0x2935) {
                    returnValue =YES;
                }else if (0x3297 <= hs && hs <= 0x3299) {
                    returnValue =YES;
                }else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {
                    returnValue =YES;
                }
            }
        }
    }];
    return returnValue;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值