2

インスタンスに問題がありNSDateます。

私が受け取っている日付について2012-08-16 00:00:00 +0000
しかし、私はから削除する必要があり00:00:00 +0000ます。

それを行う方法はありますか?

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init]autorelease];
[formatter setDateFormat:@"yyyy-MM-dd"];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSDate *eventDate = [formatter dateFromString:currentDate]; // current Tile

NSLog(@"date %@",eventDate);
4

2 に答える 2

3

使用する

NSLog(@"date %@",[formatter stringFromDate:eventDate]);

ANSDateは1つの時点にすぎません。値をどのようにフォーマットする必要があるかはわかりません。それNSDateFormatterが目的です。

NSLog(@"date %@",eventDate);日付のデフォルトの文字列表現を出力します。

于 2012-08-15T17:09:31.990 に答える
1

日付フォーマッタは文字列を日付に変換し、日付を文字列に変換します。NSDate は、作成方法に関係なく、特定の時点を表します。あなたのコードでは、NSDate が元のフォーマッタが時刻を指定しなかったことを「覚えている」と考えているようです。それはしません。呼び出すdateFromString:と、時刻として 00:00:00 (真夜中) が選択されます。

時間に関係なくカレンダーの日付を操作する必要がある場合は、次のいずれかを実行できます。

  1. NSDate オブジェクトを使用し、時間コンポーネントを無視します。あるタイム ゾーンでは 8 月 15 日の午前 0 時が、別のタイム ゾーンでは 8 月 14 日の午後 11 時になる可能性があるため、タイム ゾーンに注意する必要があります。

  2. 年、月、日を格納するには、別のデータ構造を使用します。NSDateComponents は良い候補ですが、独自に作成することもできます。

于 2012-08-15T17:17:19.177 に答える