Search code examples
iphonensdatenscalendar

Removing time from date format


I am developing an application in that i have used DatePicker to pick the date but it gives me date with time .I have converted that format into string, now i just want date from that. How should i do that.Plz suggest me something.

Following is my code Snippet.

  NSDate *selected =[datePicker date];
  NSString *dateString = [NSString stringWithFormat:@"%@", selected];

here date picker is object of UIDatePicker.


Solution

  • You can use NSCalendar to get the month, day, and year components of your date, manipulate them, and reassemble them. Here's some example code.

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit ) fromDate:date];
    
    [otherDateComponents setYear:[dateComponents year]];
    [otherDateComponents setMonth:[dateComponents month]];
    [otherDateComponents setDay:[dateComponents day]];
    
    NSDate *newDate = [calendar dateFromComponents:otherDateComponents];
    

    Be aware that since the current calendar is locale-specific, the values you get back will not be the same on all devices. You may wish to specify a particular calendar for your purposes. NSGregorianCalendar is the one most often used in the west.