2013-08-08 26 views
5

Hiện nay những gì tôi đang làm là tôi so sánh một số ngày nói oldDate với ngày hôm nayTôi muốn để có được ngày hôm nay không có thời gian

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

dt mang lại cho tôi ngày hôm nay với thời gian cũng có. Nhưng tôi chỉ muốn hẹn hò và không có thời gian. Làm thế nào tôi có thể đạt được nó?

+0

Rất nhiều câu trả lời trên stackoverflow: http://stackoverflow.com/questions/1889164/get-nsdate-today-yesterday-this-week-last-week-this-month-last-month-var http://stackoverflow.com/questions/2331129/how-to-determine-if-an-nsdate-is-today – Flop

Trả lời

13
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"dd/MM/YYYY"]; 
NSString *dateString=[dateFormatter stringFromDate:[NSDate date]]; 
+0

Nhưng tôi cần phải so sánh hai ngày ở đây, vì vậy bằng cách này nếu tôi đang chuyển đổi date_String thành nsdate, tôi nhận được thời gian thêm vào nó. –

+0

ok, bạn có ngày chuyển đổi đầu tiên thành chuỗi như mã trên và sau khi bạn so sánh hai chuỗi là .... [String_date1 isEqualToString: String_Date2]; – hitesh

1

Ở đây bạn đi:

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

Bây giờ chuỗi timeString chứa thời gian hiện tại trong HH: mm: ss định dạng, tức là 11:26:59

Whoops misread câu hỏi! đây là thời gian chỉ cho ngày xem câu trả lời khác - cũng có thể để lại điều này ở đây cũng có.

2

Bạn cần sử dụng trình định dạng ngày để xuất chính xác ngày và/hoặc thời gian cho đối tượng NSDate.

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

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

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

Thiết lập NSDateFormatterStyle loại khác nhau sẽ mang lại nhiều hay ít thông tin theo yêu cầu, tức là .: "Thứ Ba 1 Tháng 1, 2013", hoặc "2013/01/02".

+0

Nhưng làm thế nào để có được ngày từ ngày nàyString mà không có thời gian thêm vào nó. Bởi vì khi tôi chuyển đổi dateString này sang ngày (dateFormatter dateFromString: dateString) Tôi đang thêm thời gian vào nó một lần nữa –

+0

Bằng cách thiết lập '[dateFormatter setTimeStyle: NSDateFormatterNoStyle];' trình định dạng ngày sẽ loại bỏ thời gian cho bạn bất kể cách bạn chuyển đổi ngày vào chuỗi hoặc chuỗi đến ngày. – CaptainRedmuff

+0

Thanx Captain .... nó đã hoạt động !!! –

4

Để chăm sóc về múi giờ và tất cả mọi thứ bạn có thể làm một cái gì đó như thế này:

- (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]; 
} 

Tất nhiên bạn có thể đặt nó tất cả cùng nhau trong một chức năng chỉ cần nhớ để thay đổi components cho phù hợp.

Lưu ý: Nếu bạn muốn nội dung nào đó hiển thị cho người dùng, hãy sử dụng một trong các câu trả lời khác với NSDateFormatter.

Các vấn đề liên quan