5

NSDateFormatterを使用していますが、問題はその一貫性にあります。kCFDateFormatterMediumStyleを使用すると、シミュレーターでは「2009年11月26日」という形式になりますが、デバイスでは「2009年11月26日」になります。

今、私は質問があります、このNSFormatterは近い将来に信頼できる手段ですか、それともアップルからのアップデートでスタイルを再び変えることができますか?

4

2 に答える 2

17

上記の他の答えは技術的には正しいですが、それはあなたが探している解決策をあなたに与えません。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];
于 2009-11-26T11:58:13.177 に答える
3

NSDateFormatterは、デバイスの国際設定に基づいて、ユーザーの好みに合わせて日付をフォーマットします。そのため、世界中で日付が表示されるさまざまな方法が多いため、この文字列が一貫しているとは決して期待できません。

日付を文字列としてフォーマットする(Webサーバーなどに提供するために使用する)最良の方法は、NSDateComponentsを使用して、これらを文字列に変換することです。

于 2009-11-26T11:49:07.593 に答える