2017-09-20 1 views
0

以前のXCode 9と同じように、私はDateFormatterに関する問題はありませんでした。NSDateFormatter MMM変換

アップデートで私は問題を抱えていますが、私はバイパスできないようです。

私はNSStringからNSDateに日付を変換するのに忙しいですが、私のコードはNSDateを初期化できないようです。

マイコード:

NSString *testdate = @"Sep 20 2017 1:46PM"; // this is how my date looks 

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"MMM dd yyyy hh:mma"]; 

NSDate *thisDate = [df dateFromString: testdate]; // this returns nil 

私はさまざまな方法で文字列を操作しようとしている、と私は機能を投入した後にのみ、私はDATEFORMATの問題が出現していることがわかりました。

誰もがこの問題と解決策を見つけましたか?

編集:

私が上でこれを持っている唯一のデバイスは、iOS 11とiPhone 7である(iOSの10と2つの異なるデバイスを試験し、iPhone 7も正常に動作しています)。私はiPhone 6 PlusとiPhone 7 PlusをiOS 11に搭載していますが、これらは両方とも動作しています...時刻形式

同じ日付の文字列に[NSDate date]を変換すると私の結果は次のようになります:M09 20 2017 1:46 PM ... - これは日付形式の問題でした(私はtimeformatをテストに変更したときに起こったようです)、今は問題は私の問題ではありません

+0

は、あなたがこの '[NSDate日付]に関連するコードの変換は、日付から文字列に正しくなりましたAnbu.Karthik @' –

+0

を表示することができますしかし、これまでの文字列は、まだこの変更は次のようになり – Burnie777

+0

日付が正確な答え –

答えて

1

詳細な調査の後、DateFormatterをセットアップした場合、ロケールを追加して動作させる必要があるように思えます...サーバーから取得した日付なので、使用されているため変更できませんウェブサイトも同様です。

私はAM/PMとして、サーバから日付を受信し、ロケールはこれは私が持っていた問題を解決した問題

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"MMM dd yyyy hh:mma"]; 
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 

を解決しました。

+0

を発生しない障害が発生しましたユーザーのロケールが英語以外の言語に設定されている場合は、iOSまたはXcodeのすべてのバージョンで必要です。 – rmaddy

+0

私はこの問題に事前に遭遇していません...ただ今は...しかし、知っておきたいことは...将来チェックするために...ありがとう – Burnie777