iSa*_*ara 7 cocoa-touch objective-c nsdate uidatepicker ios
如何总是得到秒数值" 00
" UIDatePicker
的日期?
现在我正在获得像这种格式的价值5:30:45
,我需要获得这种格式的时间5:30:00
.
怎么做到这一点?
iSa*_*ara 13
我用这个代码它工作正常.
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];
Run Code Online (Sandbox Code Playgroud)
您不必使用NSDateComponents或将日期转换为字符串并返回.您可以告诉日历将日期设置为分钟的开头(小时/日期/周/ ...)
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
Run Code Online (Sandbox Code Playgroud)
NSDate *currentDate = [datePicker date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];
NSString *Str_Seccond=[dateFormatter stringFromDate:currentDate];
Run Code Online (Sandbox Code Playgroud)
在 Str_Seccond 字符串中,您可以获取字符串格式的秒。