日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自: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进制的转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。