iOS时间类型转换和各种数据类型进行转换
来源:互联网 发布:nginx 跳转 url不变 编辑:程序博客网 时间:2024/05/16 09:52
</pre><pre name="code" class="objc">/** * 时间转换部分 * //从1970年开始到现在经过了多少秒 -(NSString *)getTimeSp { NSString *time; NSDate *fromdate=[NSDate date]; time = [NSString stringWithFormat:@"%f",[fromdate timeIntervalSince1970]]; return time; } //将时间戳转换成NSDate,转换的时间我也不知道是哪国时间,应该是格林尼治时间 -(NSDate *)changeSpToTime:(NSString*)spString { NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[spString intValue]]; NSLog(@"%@",confromTimesp); 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]; NSLog(@"%@",localeDate); 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]; NSLog(@"%@",string); 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]; NSLog(@"%ld",time); 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; } //将当前时间转化为年月日格式 -(NSString *)changeDate { NSDate *date = [NSDate date]; NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; NSDateComponents *comps = [calendar components:unitFlags fromDate:date]; NSInteger year = [comps year]; NSInteger month = [comps month]; NSInteger day = [comps day]; NSInteger hour = [comps hour]; NSInteger min = [comps minute]; NSInteger sec = [comps second]; NSString *string = [NSString stringWithFormat:@"%d年%d月%d日%d时%d分%d秒",year,month,day,hour,min,sec]; NSLog(@"%@",string); return string; } *///发送数据时,16进制数->Byte数组->NSData,加上校验码部分-(NSData *)hexToByteToNSData:(NSString *)str{ int j=0; Byte bytes[[str length]/2]; ////Byte数组即字节数组,类似于C语言的char[],每个汉字占两个字节,每个数字或者标点、字母占一个字节 for(int i=0;i<[str length];i++) { /** * 在iphone/mac开发中,unichar是两字节长的char,代表unicode的一个字符。 * 两个单引号只能用于char。可以采用直接写文字编码的方式来初始化。采用下面方法可以解决多字符问题 */ 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进制数,与 0xff 做 & 运算会将 byte 值变成 int 类型的值,也将 -128~0 间的负值都转成正值了。 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=[self NSDataToByteTohex:responseData]; NSLog(@"%@",string); return string;}//将汉字字符串转换成UTF8字符串-(NSString *)chineseToUTf8Str:(NSString*)chineseStr{ NSStringEncoding encodingUTF8 = NSUTF8StringEncoding; NSData *responseData2 =[chineseStr dataUsingEncoding:encodingUTF8 ]; NSString *string=[self NSDataToByteTohex:responseData2]; return string;}//将十六进制字符串转换成汉字-(NSString*)changeLanguage:(NSString*)chinese{ NSString *strResult; NSLog(@"chinese:%@",chinese); if (chinese.length%2==0) { //第二次转换 NSData *newData = [self 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=[self hexToByteToNSData:chinese]; strResult=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; return strResult;}//将十进制数转换成十六进制-(NSString *)ToHex:(int)tmpid{ NSString *nLetterValue; NSString *str =@""; long long int ttmpig; for (int i = 0; i<9; i++) { ttmpig=tmpid%16; 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:@"%lli",ttmpig]; } str = [nLetterValue stringByAppendingString: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]; NSLog(@"%@",[returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"]); return [returnStr stringByReplacingOccurrencesOfString:@"\\r\\n" withString:@"\n"];}//iso8859-1 到 unicode编码转换 iso8859-1字符编码的一种/*- (NSString *)changeISO88591StringToUnicodeString:(NSString *)iso88591String{ NSMutableString *srcString = [[NSMutableString alloc]initWithString:iso88591String]; [srcString replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearch range:NSMakeRange(0, [srcString length])]; [srcString replaceOccurrencesOfString:@"&#x" withString:@"" options:NSLiteralSearch range:NSMakeRange(0, [srcString length])]; NSMutableString *desString = [[NSMutableString alloc]init]; 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] = '\0'; [desString appendString:[NSString stringWithCString:c encoding:NSUnicodeStringEncoding]]; free(c); } return desString;} */
1 0
- iOS时间类型转换和各种数据类型进行转换
- iOS时间类型转换和各种数据类型进行转换
- iOS时间类型转换和各种数据类型进行转换
- 数据类型和类型转换
- IOS-各种数据类型的转换
- JAVA 各种数据类型、各种类型转换
- iOS 各种数据类型的转换 和知识点的总结
- ConvertUtils 字符串和各种类型数据间进行转换
- 在各种字符串类型之间进行转换
- 各种字符串类型之间进行转换
- 各种字符串类型之间进行转换
- 各种时间类型之间的转换函数
- 各种时间类型的转换及比较
- Moment.js进行时间类型转换
- 各种数据类型转换
- 各种数据类型的转换
- 各种数据类型转换
- [转] 各种数据类型转换
- c++序列化库cereal使用介绍
- libcurl出现CURLcode 23 CURLE_WRITE_ERROR错误 以及每次抓取网页长度不一致问题
- 怎么查看Navicat Premium 中的日志文件
- android音乐播放器Media
- 数据字典的范例
- iOS时间类型转换和各种数据类型进行转换
- Android多线程-------同步辅助类
- 二叉树的深度优先遍历与广度优先遍历 [ C++ 实现 ]
- Java Web 使用getPart()、getParts()上传文件
- MFC绘图窗口闪烁解决方法or内存DC
- 基于MT7688模块的开发笔记11——编写我的第一个程序并在MT7688中运行
- StringUtils常用的方法
- 统计代码行数命令
- nginx负载均衡