微博時(shí)間解析

新浪微博返回的時(shí)間都是,帶有時(shí)區(qū)的GMT時(shí)間,平時(shí)使用慣了中國的時(shí)間表示格式,GMT時(shí)間轉(zhuǎn)換一時(shí)無從下手。找了好一會兒,終于找到了對應(yīng)的時(shí)間格式化字符串:

Tue May 31 17:46:55 +0800 2011

對應(yīng):

EEE MMM d HH:mm:ss Z yyyy

都是對應(yīng)關(guān)系,其中的Z應(yīng)該是Zone,表示時(shí)區(qū)的意思,對應(yīng)上面的+0800(北京時(shí)間,是東八時(shí)區(qū))。

iOS解析補(bǔ)充:

如果你在iOS中解析新浪微博的日期格式,只是設(shè)置NSDateFormatter實(shí)例的dateFormat屬性為上面的格式化字符串。在模擬器(前提是模擬器的“設(shè)置”->“多語言環(huán)境”->“英國/美國”)下是能夠?qū)崿F(xiàn)解析的,但是在真機(jī)調(diào)試時(shí),卻無法解析。

那是因?yàn)樵谥袊貐^(qū)的,操作系統(tǒng)的環(huán)境一般都是“中國”、“中國香港”、“中國澳門等”,而上面的這種格式化字符串只針對英文操作系統(tǒng)的環(huán)境下才有效。

所以為了保證在任何設(shè)置下都能解析,我們需要對NSDateFormatter實(shí)例的locale屬性進(jìn)行設(shè)置(強(qiáng)制采用“en-US”的方式進(jìn)行轉(zhuǎn)換):

示例:

//解析新浪微博中的日期

+ (NSString*)resolveSinaWeiboDate:(NSString*)date{

NSDateFormatter *iosDateFormater=[[[NSDateFormatter alloc]init]autorelease];

iosDateFormater.dateFormat=@"EEE MMM d HH:mm:ss Z yyyy";

//必須設(shè)置,否則無法解析

iosDateFormater.locale=[[[NSLocale alloc]initWithLocaleIdentifier:@"en_US"]autorelease];

NSDate *date=[iosDateFormater dateFromString:date];

//目的格式

NSDateFormatter *resultFormatter=[[[NSDateFormatter alloc]init]autorelease];

[resultFormatter setDateFormat:@"MM月dd日 HH:mm"];

return [GlobalInstance NSDateToNSString:date withFormatter:resultFormatter];

}

/*

*日期轉(zhuǎn)化為日期格式的字符串

*/

-(NSString*)NSDateToNSString:(NSDate*)date withFormatter:(NSDateFormatter*)formatter{

NSString? ? *dateString=[formatter stringFromDate:date];

return dateString;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容