0

に変換できることを証明しようとする単純なNSStringケースNSDate。を作成しNSDate、それをに変換してNSStringから、に戻しNSDateます。日付は文字列としては問題ないように見えますが、元に戻すと、常に2011年12月25日のような日付が表示されます....誰かが私のエラーを見つけることができますか?

 NSDateFormatter *df = [[NSDateFormatter alloc] init];
 [df setDateFormat:@"dd/MM/YY hh:mm a"];
 NSDate* b = [[NSDate alloc] init];
 NSString* f = [df stringFromDate:b]; // has the current date and time
 NSDate* dt =[df dateFromString:f];  // 12/25/2011 - where does it get this?
4

2 に答える 2

0

次を使用してみてください。

[df setDateFormat:@"dd/MM/yyyy hh:mma"]; // or @"dd/MM/yy hh:mma"

結果は次のとおりです。

Printing description of b:
2012-06-12 13:06:16 +0000
Printing description of dt:
2012-06-12 13:06:00 +0000

さらに情報が必要な場合は、date-formatter-examplesを読むことをお勧めします。

ARCを使用しない場合は、メモリリークに注意してください。たとえば、[NSDate date]の代わりに使用し[[NSDate alloc] init]ます。

お役に立てば幸いです。

于 2012-06-12T13:09:11.113 に答える
0

私には、システムがDatestyleを使用しているように見えます。

スタイルを使用しないようにフォーマッタを設定してください。

[df setDateStyle:NSDateFormatterNoStyle];

そして、なぜあなたは一般的にスタイルを使用していないのですか?それはNSDateFormatterShortStyle あなたが望むもののようです。時間のスタイルも設定し、使用setLocal:して日付を希望の順序にするだけです。

于 2012-06-12T13:09:30.337 に答える