2011-10-25 8 views
0
NSDate *currentDate = [NSDate date]; 
NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
[format setDateFormat:@"MM/dd/yyyy,h,mm,a"]; 
NSString *dateString = [format stringFromDate:currentDate]; 
[format release]; 

NSLog(dateString); 

に出力:デバイスiPhone4の
[240:707] 10月25日/ 2011,22,23、
現在の言語:自動。現在、Objective-Cの 警告:/SDK4.2/Platforms/iPhoneOS.platform/DeviceSupport/4.3.3(8J2)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib日付フォーマッタ異なる出力

出力のためのシンボルを読み取ることができません。デバイスiPad2
[82:707] 10/25/2011,12,28 PM
現在の言語:自動;現在、Objective-Cの 警告:/SDK4.2/Platforms/iPhoneOS.platform/DeviceSupport/4.3.3のシンボルを読み取ることができません(8J2)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib
この事は正常に動作しますすべての人のためにシミュレータ上で。これを処理する方法

詳細:
それはあなたがあなたのiPad上の異なるロケールセットを持っているように同じ書式文字列が

+0

時間2つのデバイスに異なる場合がありますが... zone..Thenチェックと同じ時間と時間を設定します。.. – Ilanchezhian

答えて

0

は最終的にそれを解決しました。 24時間の時計として電話の設定が原因でした。

これに応じてコードを更新する必要がありました。

:)

+0

あなたはこれをどのように解決したか教えていただけますか? – Devang

+3

@Devangはコメントにも少し紛らわしい答えがあるにもかかわらず、TheEyeは正しい答えを指しています - 日付ロケータでは、特定の日付形式の部分を選択的に調整するロケールもあります。これは、日付フォーマッタは実際には日付の印刷と日付の書式設定の2つの異なるものであり、前者は後者より重要であると考えているからです。フォーマッタで 'en_US_POSIX'のロケールを設定すると、競合が解消され、常にあなたが求めた書式設定が得られます。 – Tommy

2

はサウンド見返りに12時間と24時間のクロック値が得られていることに気づくこともあるし、あなたのiPhoneには、ここを参照してください:

http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

のいずれかが両方のデバイスで同じロケールを設定し(それはちょうどあなたの問題の場合)またはNSDateFormatterが使用することを確認してください特定の形式のような形式に依存する場合、同じ(ハードコードされた)ロケール。

編集:追加情報

それは明らかに(ソリューションで)ここに、より詳細なロケールの問題点、IS: http://developer.apple.com/library/ios/#qa/qa1480/_index.html

しかし、私は間違っていた、ロケールを設定すると、実際にそれを助けることはありません。

引用:

On iPhone OS, the user can override the default AM/PM versus 24-hour time setting (via Settings > General > Date & Time > 24-Hour Time), which causes NSDateFormatter to rewrite the format string you set, which can cause your time parsing to fail.

+0

設定ロケールは24/12時間の時計には影響を与えません。これは私がここで見ることができる問題です.. !! – samfisher

+0

上記のsamfisherのコメントとは対照的に、私のテストでは、ロケールは明示的な日付フォーマットに関係なく、日付フォーマッタが12時間表示を24時間表示に置き換えるかどうかに影響を与えるかどうかに影響を与えることが明らかになりました。一部のロケールではデフォルトの12/24クロック設定よりも優先されます)。 QA1480のようにen_US_POSIXのロケールを明示的に設定すると、問題が解決されます。 – Tommy

関連する問題