0

[self.post post_time] 値が 2012-08-02T08:57:52.152713+00:00 の NSDate があります。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setDateFormat:@"yyyy-mm-dd"];
NSLog([formatter stringFromDate:[self.post post_time]]);

うまくいきません。何が問題ですか?

4

2 に答える 2

1

あなたのコードは私のために働きます

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd'T'hh:mm:ss.SSSz"];
NSDate *myDate = [df dateFromString: @"2012-08-02T08:57:52.152713+00:00"]; // simulate your attribute

NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setDateFormat:@"yyyy-MM-dd"];
NSLog(@"%@", [formatter stringFromDate:myDate]);
于 2012-08-13T07:48:41.783 に答える
0

まず、タイムゾーンは頭痛の種になります。これNSDateFormatterは、タイムゾーンの次の形式を認識できるためです。つまり+0000GMT+1000コロンを使用してタイムゾーンを認識できません+00:00。単純に、パターンがありません。したがって、どういうわけか、タイムゾーン部分からコロンを削除する必要があります。

yyyy-mm-dd次に、このパターンは入力文字列をカバーしていないため、入力日には次のパターンを使用する必要があります。

NSString *_dateString = @"2012-08-02T08:57:52.152713+00:00";
NSString *_noColonInTimezone = [_dateString stringByReplacingCharactersInRange:NSMakeRange(_dateString.length-3, 1) withString:@""];
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
[_dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSZZZ"];
NSDate *_date = [_dateFormatter dateFromString:_noColonInTimezone];
NSLog(@"raw date : %@", _date);

それはうまく機能しており、実際のデバイスでテストされています。正しい日付のオブジェクトを取得し、NSDate必要に応じて出力の日付をフォーマットできることを願っています。

于 2012-08-13T08:17:55.150 に答える