重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
1、如何如何將一個字符串如“ 20110826134106”裝化為任意的日期時間格式,下面列舉兩種類型:
創新互聯企業建站,十載網站建設經驗,專注于網站建設技術,精于網頁設計,有多年建站和網站代運營經驗,設計師為客戶打造網絡企業風格,提供周到的建站售前咨詢和貼心的售后服務。對于成都網站制作、做網站中不同領域進行深入了解和探索,創新互聯在網站建設中充分了解客戶行業的需求,以靈動的思維在網頁中充分展現,通過對客戶行業精準市場調研,為客戶提供的解決方案。
NSString* string = @"20110826134106";
NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease];
[inputFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
[inputFormatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate* inputDate = [inputFormatter dateFromString:string];
NSLog(@"date = %@", inputDate);
NSDateFormatter *outputFormatter = [[[NSDateFormatter alloc] init] autorelease];
[outputFormatter setLocale:[NSLocale currentLocale]];
[outputFormatter setDateFormat:@"yyyy年MM月dd日 HH時mm分ss秒"];
NSString *str = [outputFormatter stringFromDate:inputDate];
NSLog(@"testDate:%@", str);
兩次打印的結果為:
date = 2011-08-26 05:41:06 +0000
testDate:2011年08月26日 13時41分06秒
/*
NSDateFormatter *dateFormatter=[[NSDateFormatteralloc]init];
[dateFormatter setDateFormat:@"yyyy"];
NSString *Str=[dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];
NSDateFormatter *dateFormatter1=[[NSDateFormatteralloc]init];
[dateFormatter1 setDateFormat:@"MM"];
NSString *Str1=[dateFormatter1 stringFromDate:[NSDate date]];
[dateFormatter1 release];
NSDateFormatter *dateFormatter2=[[NSDateFormatteralloc]init];
[dateFormatter2 setDateFormat:@"dd"];
NSString *Str3=[dateFormatter2 stringFromDate:[NSDate date]];
[dateFormatter2 release];
NSString *dateStr=[NSStringstringWithFormat:@"%@-%@-%@ 00:00:00",Str,Str1,Str3];
NSLog(@"dateStr------------%@",dateStr);
//將傳入時間轉換成需要的格式
NSDateFormatter *format=[[NSDateFormatteralloc]init];
//[dateFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];//location設置為中國
// [format setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];//location設置為中國
[format setLocale:[NSLocalecurrentLocale]];
[format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *inputDate=[[format dateFromString:dateStr] retain];
NSTimeZone *fromzone = [NSTimeZonesystemTimeZone];
NSInteger frominterval = [fromzonesecondsFromGMTForDate: inputDate];
fromDate = [[inputDate dateByAddingTimeInterval: frominterval] retain];
NSLog(@"fromDate------zh---------%@",fromDate);
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
//默認日期格式為yyyy-MM-dd
dateFormatter= [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]];//location設置為中國
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
//picker的默認時間為當前時間
date=[NSDate date];
//picker的默認style為只顯示日期
datePickerMode=UIDatePickerModeDate;
//構造一個子視圖,用于顯示日期選擇器
subview=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
subview.backgroundColor=[UIColor clearColor];
subview.tag=0;
*/
說明:上面的時間是美國時間,下面的沒有設置
NSString* string = @"Wed, 05 May 2011 10:50:00 +0800";
NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease];
[inputFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
[inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"];
NSDate* inputDate = [inputFormatter dateFromString:string];
NSLog(@"date = %@", inputDate);
// 獲得本地時間指定時區
NSDate *dates = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/beijing"];
[formatter setTimeZone:timeZone];
NSString *loctime = [formatter stringFromDate:dates];
已知一個漢字的unicode碼(例如-20319),可以通過以下方法得到該unicode碼對應的漢字:1,聲明一個3字節長的字符數組,例如char a[3];2,對該數組賦值為char a[3]={unsigned(-20319)/256,unsigned(-20319)%256,0};3,輸出直接為coutaendl;即可;4,也可以把字符數組直接賦值給字符串string,例如string str(a);。下面對步驟2進行解釋,unicode碼為16位(unsigned short),而字符char類型僅有8位,步驟2完成的功能就是把unicode前8位和后8位分別存放在一個字符數組不同的2字節中,由此可以想像,char型的字符串存儲漢字時也應該是這樣的。結尾的0表示數組的結束。查一個漢字的unicode碼更簡單,聲明一個wchar_t變量,并直接賦值一個漢字,例如wchar_t ch='阿';,顯示時直接coutchendl;即可。不過編譯時可能給警告。輸出的文件中和普通操作一樣。
在iOS中通過WebView加載Url或者請求HTTP時,若是鏈接中包含中文、特殊符號%或是空格等都需要預先進行一下轉碼才可正常訪問。
官方源碼“NSRUL.h”文件中可以看到如下信息:后兩個方法已廢棄,從iOS7.0開始提供新的兩個方法:
一:stringByAddingPercentEncodingWithAllowedCharacters方法:是將普通字符轉為百分比編碼字符;
調用方法如下:
eg. “浙江省”轉碼后即變成了“%E6%B5%99%E6%B1%9F%E7%9C%81”;
方法二:stringByRemovingPercentEncoding方法:則是將百分比編碼字符重新轉會普通字符;
調用方法如下:
第一,你要試試 urlStr=[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 這種編碼格式,如果不行,就試試下面的
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *str = @"漢字";
NSData *data = [str dataUsingEncoding:enc];
NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];
進行GB2312轉碼,然后發送就可以了。
在公司項目中,視頻播放的時候,url可能已經utf-8轉碼了,也可能未轉碼而包含中文,對url中的中文進行轉碼時,如果url中的中文已經是utf-8轉碼了,那么會二次轉碼,在項目需求中url就無效
如果知道url中的中文既可能已經轉碼,也可能沒有轉碼,那么使用如下的方法,當不管url中的中文是否已經utf-8轉碼了,都可以解決將中文字符轉為utf-8的問題,且不是二次轉碼