/**
*
时间转换部分
*
//从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;
}
*/
-(NSData
*)hexToByteToNSData:(NSString *)str
{
int
j=
0
;
Byte
bytes[[str length]/
2
];
for
(
int
i=
0
;i<[str
length];i++)
{
/**
*
在iphone/mac开发中,unichar是两字节长的char,代表unicode的一个字符。
*
两个单引号只能用于char。可以采用直接写文字编码的方式来初始化。采用下面方法可以解决多字符问题
*/
int
int_ch;
unichar
hex_char1 = [str characterAtIndex:i];
int
int_ch1;
if
(hex_char1
>=
'0'
&& hex_char1 <=
'9'
)
{
int_ch1
= (hex_char1-
48
)*
16
;
}
else
if
(hex_char1
>=
'A'
&& hex_char1 <=
'F'
)
{
int_ch1
= (hex_char1-
55
)*
16
;
}
else
{
int_ch1
= (hex_char1-
87
)*
16
;
}
i++;
unichar
hex_char2 = [str characterAtIndex:i];
int
int_ch2;
if
(hex_char2
>=
'0'
&& hex_char2 <=
'9'
)
{
int_ch2
= (hex_char2-
48
);
}
else
if
(hex_char2
>=
'A'
&& hex_char2 <=
'F'
)
{
int_ch2
= hex_char2-
55
;
}
else
{
int_ch2
= hex_char2-
87
;
}
int_ch
= int_ch1+int_ch2;
bytes[j]
= int_ch;
j++;
}
NSData
*newData = [[NSData alloc] initWithBytes:bytes length:[str length]/
2
];
NSLog(@
"%@"
,newData);
return
newData;
}
-(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
];
if
([newHexStr
length]==
1
)
{
hexStr
= [NSString stringWithFormat:@
"%@0%@"
,hexStr,newHexStr];
}
else
{
hexStr
= [NSString stringWithFormat:@
"%@%@"
,hexStr,newHexStr];
}
}
NSLog(@
"hexStr:%@"
,hexStr);
return
hexStr;
}
-(NSString
*)chineseToHex:(NSString*)chineseStr
{
NSStringEncoding
encodingGB18030= CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSData
*responseData =[chineseStr dataUsingEncoding:encodingGB18030 ];
NSString
*string=[self NSDataToByteTohex:responseData];
NSLog(@
"%@"
,string);
return
string;
}
-(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;
}
-(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;
}
-
(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"
];
}