How to set weekday value of UIDatePicker to 00?

How to always get the seconds value “ 00 ” for a UIDatePicker date?

Now I get a value like this 5:30:45 format, I need to get this 5:30:00 time 5:30:00 .

How to do it?

+7
source share
5 answers
 NSDate *currentDate = [datePicker date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"ss"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]]; NSString *Str_Seccond=[dateFormatter stringFromDate:currentDate]; 

In the string Str_Seccond you can get seconds in string format.

+4
source

I used this code, it works great.

 NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit ) fromDate:datePicker.date]; NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:datePicker.date]; [dateComponents setHour:[timeComponents hour]]; [dateComponents setMinute:[timeComponents minute]]; [dateComponents setSecond:0.0]; NSDate *newDate = [calendar dateFromComponents:dateComponents]; 
+12
source

You do not need to juggle NSDateComponents or convert a date to a string and vice versa. You can specify the calendar to set the date to the beginning of the minute (hour / date / week / ...)

 NSDate *date = self.datePicker.date; [[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitMinute startDate:&date interval:NULL forDate:date]; //date now is set to the beginning of the minute -> seconds == 00 
+7
source
 NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"ss"]; NSLog(@"%@",[dateformatter stringFromDate:[datePicker date]]); 
+1
source

In Swift:

 let calendar = NSCalendar.currentCalendar() let components = calendar.components([.Year, .Month, .Day, .Hour, .Minute], fromDate: datePicker.date) let date = calendar.dateFromComponents(components) 
0
source

All Articles