转自:http://blog.sina.com.cn/s/blog_68661bd80101njdo.html

//获取当前系统的时间戳
+(long)getTimeSp{
    long time;
    NSDate *fromdate=[NSDate date];
    time=(long)[fromdate timeIntervalSince1970];
    return time;
}

//将时间戳转换成NSDate
+(NSDate *)changeSpToTime:(NSString*)spString{
    NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[spString intValue]];
    return confromTimesp;
}
//将时间戳转换成NSDate,加上时区偏移
+(NSDate*)zoneChange:(NSString*)spString{
    NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[spString intValue]];
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate:confromTimesp];
    NSDate *localeDate = [confromTimesp  dateByAddingTimeInterval: interval];
    return localeDate;
}
//比较给定NSDate与当前时间的时间差,返回相差的秒数
+(long)timeDifference:(NSDate *)date{
    NSDate *localeDate = [NSDate date];
    long difference =fabs([localeDate timeIntervalSinceDate:date]);
    return difference;
}
//将NSDate按yyyy-MM-dd HH:mm:ss格式时间输出
+(NSString*)nsdateToString:(NSDate *)date{
    NSDateFormatter *dateFormat=[[NSDateFormatter alloc]init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString* string=[dateFormat stringFromDate:date];
    return string;
}
//将yyyy-MM-dd HH:mm:ss格式时间转换成时间戳
+(long)changeTimeToTimeSp:(NSString *)timeStr{
    long time;
    NSDateFormatter *format=[[NSDateFormatter alloc] init];
    [format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *fromdate=[format dateFromString:timeStr];
    time= (long)[fromdate timeIntervalSince1970];
    [format release];
    return time;
}
//获取当前系统的yyyy-MM-dd HH:mm:ss格式时间
+(NSString *)getTime{
    NSDate *fromdate=[NSDate date];
    NSDateFormatter *dateFormat=[[NSDateFormatter alloc]init];
    [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString* string=[dateFormat stringFromDate:fromdate];
    return string;
}

点击下载DEMOhttp://www.kuaipan.cn/file/id_30491149655345667.htm 访问密码:At7uJx
//发送数据时,16进制数->Byte数组->NSData,加上校验码部分
+(NSData *)hexToByteToNSData:(NSString *)str{
    int j=0;
    Byte bytes[[str length]/2];
    for(int i=0;i<[str length];i++)
    {
        int int_ch;  ///两位16进制数转化后的10进制数
        unichar hex_char1 = [str characterAtIndex:i]; 两位16进制数中的第一位(高位*16)
        int int_ch1;
        if(hex_char1 >= '0' && hex_char1 <='9')
            int_ch1 = (hex_char1-48)*16;    0 的Ascll - 48
        else if(hex_char1 >= 'A' && hex_char1 <='F')
            int_ch1 = (hex_char1-55)*16; A 的Ascll - 65
        else
            int_ch1 = (hex_char1-87)*16; a 的Ascll - 97
        i++;
        unichar hex_char2 = [str characterAtIndex:i]; ///两位16进制数中的第二位(低位)
        int int_ch2;
        if(hex_char2 >= '0' && hex_char2 <='9')
            int_ch2 = (hex_char2-48); 0 的Ascll - 48
        else if(hex_char2 >= 'A' && hex_char2 <='F')
            int_ch2 = hex_char2-55; A 的Ascll - 65
        else
            int_ch2 = hex_char2-87; a 的Ascll - 97
        int_ch = int_ch1+int_ch2;
        bytes[j] = int_ch;  ///将转化后的数放入Byte数组里
//        if (j==[str length]/2-2) {
//            int k=2;
//            int_ch=bytes[0]^bytes[1];
//            while (k
//                int_ch=int_ch^bytes[k];
//                k++;
//            }
//            bytes[j] = int_ch;
//        }
        j++;
    }
    NSData *newData = [[NSData alloc] initWithBytes:bytes length:[str length]/2 ];
    NSLog(@"%@",newData);
    return newData;
}
//接收数据时,NSData->Byte数组->16进制数
+(NSString *)NSDataToByteTohex:(NSData *)data{
    Byte *bytes = (Byte *)[data bytes];
    NSString *hexStr=@"";
    for(int i=0;i<[data length];i++)
    {
        NSString *newHexStr = [NSString stringWithFormat:@"%x",bytes[i]&0xff];///16进制数
        if([newHexStr length]==1)
            hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];
        else
            hexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr];
    }
    NSLog(@"hexStr:%@",hexStr);
    return hexStr;
}
//将汉字字符串转换成16进制字符串
+(NSString *)chineseToHex:(NSString*)chineseStr{
    NSStringEncoding encodingGB18030= CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
    NSData *responseData =[chineseStr dataUsingEncoding:encodingGB18030 ];
    NSString *string=[sendSocket NSDataToByteTohex:responseData];
    return string;
}
//将汉字字符串转换成UTF8字符串
+(NSString *)chineseToUTf8Str:(NSString*)chineseStr{
    NSStringEncoding encodingUTF8 = NSUTF8StringEncoding;
    NSData *responseData2 =[chineseStr dataUsingEncoding:encodingUTF8 ];
    NSString *string=[sendSocket NSDataToByteTohex:responseData2];
    return string;
}
//将十六进制字符串转换成汉字
+(NSString*)changeLanguage:(NSString*)chinese{
    NSString *strResult;
    NSLog(@"chinese:%@",chinese);
    if (chinese.length%2==0) {
        //第二次转换
        NSData *newData = [sendSocket hexToByteToNSData:chinese];
        unsigned long encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
        strResult = [[NSString alloc] initWithData:newData encoding:encode];
        NSLog(@"strResult:%@",strResult);
    }else{
        NSString *strResult = @"已假定是汉字的转换,所传字符串的长度必须是4的倍数!";
        NSLog(@"%@",strResult);
        return NULL;
    }
    return strResult;
}
/GBK,汉字,GB2312,ASCII码,UTF8,UTF16
//UTF8字符串转换成汉字
+(NSString*)changeLanguageUTF8:(NSString*)chinese{
    NSString *strResult;
    NSData *data=[sendSocket hexToByteToNSData:chinese];
    strResult=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    return strResult;
}
//将十六进制数转换成十进制
-(NSString *)ToHex:(int)tmpid
{
    NSLog(@"tmpid:%d",tmpid);
    NSString *nLetterValue;
    NSString *str =@"";
    int ttmpig;
    for (int i = 0; i<9; i++) {
        ttmpig=tmpid;
        tmpid=tmpid/16;
        switch (ttmpig)
        {
            case 10:
                nLetterValue =@"A";break;
            case 11:
                nLetterValue =@"B";break;
            case 12:
                nLetterValue =@"C";break;
            case 13:
                nLetterValue =@"D";break;
            case 14:
                nLetterValue =@"E";break;
            case 15:
                nLetterValue =@"F";break;
            default:nLetterValue=[[NSString alloc]initWithFormat:@"%i",ttmpig];               
        }       
        str = [nLetterValue stringByAppendingString:str];
        NSLog(@"str:%@",str);
        if (tmpid == 0) {
            break;
        }       
    }
    return str;
}
//Unicode转化为汉字
+ (NSString *)replaceUnicode1:(NSString *)unicodeStr {
    NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u"withString:@"\\U"];
    NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"""withString:@"\\""];
    NSString *tempStr3 = [[@"""stringByAppendingString:tempStr2]stringByAppendingString:@"""];
    NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
    NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL];
    return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n"withString:@"\n"];
}

//iso8859-1 到 unicode编码转换

+ (NSString *)changeISO88591StringToUnicodeString:(NSString *)iso88591String

{

NSMutableString *srcString = [[[NSMutableString alloc]initWithString:iso88591String] autorelease];

[srcString replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearch range:NSMakeRange(0, [srcString length])];

[srcString replaceOccurrencesOfString:@"&加行末位两个字符" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [srcString length])];//#x

NSMutableString *desString = [[[NSMutableString alloc]init] autorelease];

NSArray *arr = [srcString componentsSeparatedByString:@";"];

for(int i=0;i<[arr count]-1;i++){

NSString *v = [arr objectAtIndex:i];

char *c = malloc(3);

int value = [StringUtil changeHexStringToDecimal:v];//将二进制转化为十进制

c[1] = value  &0x00FF;

c[0] = value >>8 &0x00FF;

c[2] = '';

[desString appendString:[NSString stringWithCString:c encoding:NSUnicodeStringEncoding]];

free(c);

}

return desString;

}

NSString转换成URL编码

stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding

还原:

stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding

//十六进制数转十进制数,因为苹果采用的是小端模式,取第一个字符是取最高位数,取最后一个字符是个位数。所以需要乘以16的tmpid.length-i-1次方

-(int)TotexHex1:(NSString*)tmpid

{

int int_ch1=0;

for(int i=0;i

unichar hex_char = [tmpid characterAtIndex:i];

int int_ch;

if(hex_char >= '0' && hex_char <='9')

int_ch = (hex_char-48);  0 的Ascll - 48

else if(hex_char >= 'A' && hex_char <='F')

int_ch = (hex_char-55);  A 的Ascll - 65

else

int_ch = (hex_char-87);  a 的Ascll - 97

int_ch=int_ch*pow( 16, tmpid.length-i-1 );//pow的第二个参数根据小端模式或者大端模式调整,

int_ch1 = int_ch1+int_ch;

NSLog(@"%d",int_ch1);

}

return int_ch1;

}

- (UIImage*)imageRotatedByDegrees:(CGFloat)degrees

{

CGSize rotatedSize = self.size;

if (isRetina) {

rotatedSize.width *= 2;

rotatedSize.height *= 2;

}

UIGraphicsBeginImageContext(rotatedSize);

CGContextRef bitmap = UIGraphicsGetCurrentContext();

CGContextTranslateCTM(bitmap, rotatedSize.width/2, rotatedSize.height/2);

CGContextRotateCTM(bitmap, degrees * M_PI / 180);

CGContextRotateCTM(bitmap, M_PI);

CGContextScaleCTM(bitmap, -1.0, 1.0);

CGContextDrawImage(bitmap, CGRectMake(-rotatedSize.width/2, -rotatedSize.height/2, rotatedSize.width, rotatedSize.height), self.CGImage);

UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return newImage;

}

-(double)distanceBetweenOrderBy:(double)lat1 :(double)lat2 :(double)lng1 :(double)lng2{//lat纬度,lng进度

CLLocationCoordinate2D coor;

coor.latitude = lat2;

coor.longitude = lng2;

NSDictionary *tip =  BMKBaiduCoorForWgs84(coor);

CLLocationCoordinate2D coor1=  BMKCoorDictionaryDecode(tip);

CLLocation* curLocation1 = [[[CLLocation alloc] initWithLatitude:lat1longitude:lng1]autorelease];

CLLocation* otherLocation = [[[CLLocation alloc] initWithLatitude:coor1.latitude longitude:coor1.longitude]autorelease];

double distance  = [curLocation1 distanceFromLocation:otherLocation];

return distance;

}

NSString *tempStr=[[NSString stringWithFormat:@"%@",[sendData subdataWithRange:NSMakeRange(0,1024)]] stringByReplacingOccurrencesOfString:@" " withString:@""] ;

NSMutableString *myStr=[[NSMutableString alloc]init];

for (int i=1; ilength-2; i=i+2) {

[myStr appendFormat:@"0x%@,",[tempStr substringWithRange:NSMakeRange(i, 2)]];

}

转载于:https://www.cnblogs.com/lvyinbentengzhe/p/5159954.html

iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换相关推荐

  1. java中的进制输出转换_java中进制的转换,Byte与16进制的转换

    java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下: 首先关于最简单的二进制转换的方法有: 十 ...

  2. iOS 将16进制字符串转换成UIColor

    #pragma mark - 将16进制字符串转换成 UIColor - (UIColor *)generateColorObjectWithHex:(NSString *)hexString { u ...

  3. Qt 字符串的操作,转换成 int、16进制

    字符串截取: QString str = "abcdefg"; str.mid(2,2); //return cd 从下表索引为2开始取2个字符 str.mid(3); //ret ...

  4. php中文汉字与16进制编码转换三种方法

    本文介绍了php中文汉字与16进制编码转换的方法,php汉字编码转换的几个例子,有需要的朋友参考下. 用php实现中文汉字与16进制间的编码转换. 例1, <?php //汉字转换为16进制编码 ...

  5. 字符串16进制数字转换到Ascll字符串

    16进制数字转换到Ascll的原理也比较简单,由于unsignal char是8位数据 (这里用unsignal char的原因是表示的数字大小为0-255,用16进制数字FF表示) 可以包含2位16 ...

  6. 8421快速转换法 2、10、16进制快速转换

    8421快速转换法 2进制 快速转换 10进制 例题:二进制100101001转十进制 100101001等同2^8+2^5+2^3+2^0等同256+32+8+1=297 解析心算步骤 第一步挑出里 ...

  7. java进制转换、字符串与16进制互转/数字进制互转

    目录 十进制转其他进制 其他进制数字转十进制 字符串与16进制相互转换 十进制转其他进制 /*** 十进制转其他进制*/public static String conversion(Integer ...

  8. Android 二进制、10进制、16进制互相转换

    Android 二进制.10进制.16进制互相转换 前言 代码 二进制转10进制 10进制转二进制 10进制转16进制 16进制转10进制 二进制转16进制 16进制转二进制 完事 前言 百度出来的A ...

  9. QT 16进制数转换成QString显示

    /*  * 16进制数转换成QString显示  */ QString hexToString(unsigned char *in, int len) { int i; unsigned char i ...

最新文章

  1. PacificA: Replication in Log-Based Distributed Storage Systems 论文理解
  2. 从Hotspot JIT编译器打印生成的汇编代码
  3. python - classs内置方法 solt
  4. C++ priority_queue对链表节点建立小根堆
  5. 我的女朋友漏电了–论C++中的失败(failure),缺陷(bug)和异常(exception)
  6. bzoj4820[SDOI2017]硬币游戏
  7. ubuntu16.04 安装kicad5.1
  8. C++ 11 新特性
  9. 怎样音频转文字?用这些音频转文字免费版就可以啦
  10. 上海富勒wms_国内WMS前三名是哪几家
  11. Windows 2003超级终端
  12. [windows系统上运行spark报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries
  13. https证书过期时间应该怎么处理
  14. intel英特尔架构
  15. 文件下载(解决中文文件名下载乱码问题)(二)
  16. IDEA报错:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found
  17. 1.1 万 Star!这个开源项目让马云、马斯克等大佬齐唱“蚂蚁呀嘿”
  18. 计算机英语中poke什么意思,poke是什么意思_poke在线翻译_英语_读音_用法_例句_海词词典...
  19. AutoLayout技术选型和应用
  20. 学习笔记:INA219电流采集方案实现

热门文章

  1. 如何安装部署秋色园QBlog站点
  2. 原文:我的数据库学习“曲线”
  3. jQuery的筛选选择器
  4. Linux压缩解压缩命令
  5. Java之强引用、 软引用、 弱引用、虚引用
  6. 打通NTFS权限 文件共享各取所需
  7. 《Solution-Centric Organization》解决方案导向型组织 节选 III
  8. mongoDB3.0.2 升级操作
  9. 从Zygote孵化frameworks进程,分析StartActivity流程中intent传递数据的最大值。
  10. android 弹出对话框时显示键盘