NSDateFormatterを使用していますが、問題はその一貫性にあります。kCFDateFormatterMediumStyleを使用すると、シミュレーターでは「2009年11月26日」という形式になりますが、デバイスでは「2009年11月26日」になります。
今、私は質問があります、このNSFormatterは近い将来に信頼できる手段ですか、それともアップルからのアップデートでスタイルを再び変えることができますか?
NSDateFormatterを使用していますが、問題はその一貫性にあります。kCFDateFormatterMediumStyleを使用すると、シミュレーターでは「2009年11月26日」という形式になりますが、デバイスでは「2009年11月26日」になります。
今、私は質問があります、このNSFormatterは近い将来に信頼できる手段ですか、それともアップルからのアップデートでスタイルを再び変えることができますか?
上記の他の答えは技術的には正しいですが、それはあなたが探している解決策をあなたに与えません。NSDateFormatterはデフォルトでユーザーロケールを使用しますが(したがって、有用な結果は得られません)、特定のロケールを要求して一貫した結果を得ることができます。
NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];
NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
NSDateFormatterは、デバイスの国際設定に基づいて、ユーザーの好みに合わせて日付をフォーマットします。そのため、世界中で日付が表示されるさまざまな方法が多いため、この文字列が一貫しているとは決して期待できません。
日付を文字列としてフォーマットする(Webサーバーなどに提供するために使用する)最良の方法は、NSDateComponentsを使用して、これらを文字列に変換することです。