次のコードがあります。
[ [NSDate date] descriptionWithLocale: @"yyyy-MM-dd" ]
次の形式で日付を返したい: "2009-04-23"
しかし、次のように返されます: 2009 年 4 月 23 日木曜日、午後 11:27:03 GMT+03:00
私は何を間違っていますか?
前もって感謝します。
次のコードがあります。
[ [NSDate date] descriptionWithLocale: @"yyyy-MM-dd" ]
次の形式で日付を返したい: "2009-04-23"
しかし、次のように返されます: 2009 年 4 月 23 日木曜日、午後 11:27:03 GMT+03:00
私は何を間違っていますか?
前もって感謝します。
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release]; // delete this line if your project uses ARC
NSLog(@"%@",dateString);
間違った方法を使用しています。代わりに試してくださいdescriptionWithCalendarFormat:timeZone:locale:
[[NSDate date] descriptionWithCalendarFormat:@"%Y-%m-%d"
timezone:nil
locale:nil];
また、メソッドは質問の形式とは異なる形式を想定していることにも注意してください。そのための完全なドキュメントは、ここにあります。
編集: マイクが指摘したように、実際にはNSDateFormatter
. descriptionWithCalendarFormat:timezone:locale:
ドキュメントでAppleが言及していることにはいくつかの問題があります。
また、ほとんどの場合、NSDateFormatter
その柔軟性のために が好まれることに注意してください。
また、多くのアプリで日付フォーマッタを再利用することで、パフォーマンスが大幅に向上します。
利用できない場合(iPhone/Cocoa Touch にこれが含まれているとは思えません)、 strftimeを使用し、C スタイルの文字列をいくつかNSDate -descriptionWithCalendarFormat:timeZone:locale:
使用する必要があるかもしれません。を使用して、NSDate から UNIX タイムスタンプを取得できます。NSDate -timeIntervalSince1970