2016-12-22 3 views
-2

私は次の文字列"Sat, 17 Dec 2016 18:56:08 +0100 (GMT+01:00)” to date?"NSDateFormatter:どのように変換する「土曜、17 2016年12月午後06時56分08秒0100(GMT + 01:00)」?これまでの

更新

を持って、私は削除文字列の最後の部分それから私は、次の文字列を持っている:。"Sat, 17 Dec 2016 18:56:08 +0100"

は、これは私のコードです:。

_emailDateFormatter = [[NSDateFormatter alloc] init]; 
[_emailDateFormatter setDateFormat:NSLocalizedString(@"EEE, dd MMM yyyy HH:mm:ss Z", nil)]; 
NSDate* date = [[ParlaMobileUtils sharedInstance].emailDateFormatter dateFromString:@"Sat, 17 Dec 2016 18:56:08 +0100"]; 
NSString* string_date = [[ParlaMobileUtils sharedInstance].dateFormatter stringFromDate:date]; 

しかし、NSDateは常にnilです

+2

Q: 'Z'は' +0100(GMT + 01:00) 'と一致しますか? A:いいえ。 – rmaddy

+0

@ mmaddy私はそのwierdを知っていますが、PythonとJavaで動作します.... – Ricardo

+0

実際のフォーマットは何ですか?最初の+0100は「GMTからのコロンなしのオフセット」であると約束されたのでしょうか、それともCETのようなものかもしれませんか?それはおそらく解析可能ですが、実際にルールが何であるかを知っている場合のみです。 (個人的には、@vadianが示唆しているように、あなたが信頼する部分にそれを取り除くだけです) –

答えて

0

これは私が探していたパーサーです。

_emailDateFormatter = [[NSDateFormatter alloc] init]; 
[_emailDateFormatter setDateFormat:NSLocalizedString(@"EEE, dd MMM yyyy HH:mm:ss Z", nil)]; 
[_emailDateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
[_emailDateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; 
+0

タイムゾーンが解析している文字列から来ているので、フォーマッタのタイムゾーンを設定する理由はありません。 – rmaddy

関連する問題