2014年6月18日水曜日

日付の文字列のフォーマットを変更する


"Fri, 13 Jun 2014 21:08:14 GMT" → "2014/06/13 (Fri) 21:08:14" と変換したい。


まあ、日付文字列→日付→日付文字列の変換。
これだけでもめっちゃ面倒・・・。
ましな方法ないんだろうか。

NSDateFormatterを使用する際にnilが帰ってきてしまったため、
フォーマット文字列の指定を最初疑ったが原因はロケールの指定だった。

<日付のフォーマット指定の参考>
http://technical-iphone.blogspot.jp/2010/05/blog-post_06.html


    NSString* dateStr = @"Fri, 13 Jun 2014 21:08:14 GMT";
    dateStr = [dateStr stringByReplacingOccurrencesOfString:@" GMT"
                                                 withString:@""];
    NSDateFormatter* fmtToDate = [NSDateFormatter new];
    [fmtToDate setDateFormat:@"EEE, dd MMM yyyy H:mm:ss"]; //Fri 13 Jun 2014 21:08:14
    [fmtToDate setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
    [fmtToDate setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PST"]];
    
    NSDate* date = [fmtToDate dateFromString:dateStr];
    
    NSDateFormatter* fmtToStr = [NSDateFormatter new];
    [fmtToStr setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; // Localeの指定
    [fmtToDate setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PST"]];
    [fmtToStr setDateFormat:@"yyyy/MM/dd (EEE) HH:mm:ss"];
    
    dateStr = [fmtToStr stringFromDate:date];

0 件のコメント:

コメントを投稿