5

現在私がやっていることは、oldDateと言う日付を今日の日付と比較していることです

             NSDate *dt = [NSDate date];
             NSComparisonResult result = [oldDate compare:dt];
            if (result == NSOrderedAscending)
            { 
              // do something
            }

dt は、今日の日付と時刻も表示します。しかし、私は日付だけで時間は必要ありません。どうすれば達成できますか?

4

4 に答える 4

13
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd/MM/YYYY"];
NSString *dateString=[dateFormatter stringFromDate:[NSDate date]];
于 2013-08-08T10:23:04.443 に答える
4

タイムゾーンとすべてのことを気にするには、次のようにすることができます:

- (NSInteger)day {
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit fromDate:self];
    return [components day];
}

- (NSInteger)month {
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit fromDate:self];
    return [components month];
}

- (NSInteger)year {
    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit fromDate:self];
    return [components year];
}

もちろん、すべてを 1 つの関数にまとめることができますが、それにcomponents応じて変更することを忘れないでください。

警告: ユーザーに何かを表示したい場合は、NSDateFormatter で他の回答のいずれかを使用してください。

于 2013-08-08T10:26:50.417 に答える
2

オブジェクトの日付や時刻を正しく出力するには、日付フォーマッタを使用する必要がありNSDateます。

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateStyle:NSDateFormatterFullStyle];
    [dateFormatter setTimeStyle:NSDateFormatterNoStyle];

    NSString *dateString = [dateFormatter stringFromDate:[NSDate date]];

さまざまなタイプを設定するとNSDateFormatterStyle、必要に応じて多かれ少なかれ情報が生成されます。つまり、「2013 年 1 月 1 日火曜日」または「2013 年 1 月 2 日」です。

于 2013-08-08T10:24:47.607 に答える
1

どうぞ:

NSDate *date = [NSDate Date];
NSDateFormatter *timeFormatter = [[NSDateFormatter alloc] init];
timeFormatter.dateFormat = @"HH:mm:ss";
NSString *timeString = [timeFormatter stringFromDate:date];

文字列timeString には、現在の時刻が HH:mm:ss 形式、つまり 11:26:59 で含まれています。

おっと質問を読み違えた!これは日付のみの時間です。他の回答を参照してください。これもここに残しておくことをお勧めします。

于 2013-08-08T10:23:37.000 に答える