iOS NSDateFormatter日期時間格式處理的用法

來源:互聯網
上載者:User

最近在做新浪rss新聞xml解析過程中,遇到一個時間字串轉換的問題。

問題是:Wed, 3 Apr 2013 04:11:02 GMT (這個資料是在xml檔案中擷取的)要在這個字串中截取出04:11:02。

  注意:其中的GMT 要特別注意北京時間是GMT+8:00所以這個實際在網頁頁面顯示的時間是
要在這個時間的基礎上加上8小數的,也即是

Wed, 3 Apr
2013 12:11:02 GMT

請看圖就知道了

xml檔案:



網頁顯示:


顯然時間是相差8個小時的。


好了,說明了問題,下面就是解決方案了。

直接上代碼就好了。

 NSString* string = @"Wed, 3 Apr 2013 04:11:02 GMT";        NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];        [inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];        [inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];        NSDate* inputDate = [inputFormatter dateFromString:string];        NSLog(@"date = %@", inputDate);                NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];        [outputFormatter setLocale:[NSLocale currentLocale]];        [outputFormatter setDateFormat:@"HH:mm:ss"];        NSString *str = [outputFormatter stringFromDate:inputDate];        NSLog(@"testDate:%@", str);


輸出結果:

2013-04-03 12:52:53.714 date[410:303] date = 2013-04-03 04:11:02 +00002013-04-03 12:52:53.718 date[410:303] testDate:12:11:02

下面稍稍解說一下。

1、首先是產生一個對應於Wed, 3 Apr 2013 04:11:02 GMT格式的formatter,然後用這個formatter將這個字串轉成date類型的資料。對應第一段程式。

2、然後再產生一個你想要得到的時間格式的formatter,用這個formatter將這個date資料轉換成string類型(就是你想要的時間格式啦)。對應第二段程式。
3、上面可能會看到Locale,這個是幹什麼的呢?據網上資料說是為了適應中文環境,要不然會識別不出Wed這類的,要是英文環境就不用。大概就是這個意思吧。大家可以試著注釋掉這兩個Locale語句,發現真的不可以哦。


下面要說一下iOS-NSDateFormatter格式說明:

    G: 公元時代,例如AD公元    yy: 年的後2位    yyyy: 完整年    MM: 月,顯示為1-12    MMM: 月,顯示為英文月份簡寫,如 Jan    MMMM: 月,顯示為英文月份全稱,如 Janualy    dd: 日,2位元表示,如02    d: 日,1-2位顯示,如 2    EEE: 簡寫星期幾,如Sun    EEEE: 全寫星期幾,如Sunday    aa: 上下午,AM/PM    H: 時,24小時制,0-23    K:時,12小時制,0-11    m: 分,1-2位    mm: 分,2位    s: 秒,1-2位    ss: 秒,2位    S: 毫秒    Z:GMT

常用的時間格式有:

yyyy-MM-dd HH:mm:ss.SSSyyyy-MM-dd HH:mm:ssyyyy-MM-ddMM dd yyyy 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.