iOS时间戳计算
我想知道在iOS中是否还有其他更好的时间戳计算方法,我想知道你对这种计算方法的看法,这种计算方法是否存在问题或错误iOS时间戳计算,ios,time,timestamp,Ios,Time,Timestamp,我想知道在iOS中是否还有其他更好的时间戳计算方法,我想知道你对这种计算方法的看法,这种计算方法是否存在问题或错误 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"]; NSDate * startDate = [formatter dateFromString:dateString]; NSTi
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"];
NSDate * startDate = [formatter dateFromString:dateString];
NSTimeInterval interval = [startDate timeIntervalSinceNow];
int totalSeconds = abs((int)interval);
int seconds = totalSeconds % 60;
int minutes = (totalSeconds / 60) % 60;
int hours = totalSeconds / 3600;
int days = totalSeconds / (60 * 60 * 24);
int weeks = totalSeconds / (60 * 60 * 24 * 7);
int months = totalSeconds / (60 * 60 * 24 * 7 * 4);
int years = totalSeconds / (60 * 60 * 24 * 7 * 4 * 12);
非常感谢您的回复。正是您需要的。您应该尝试使用NSCalendar类及其方法:
- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date
例如:
NSCalendar *calendar = [NSCalendar currentCalendar];
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponentes *components = [calendar components: unitFlags fromDate: date];
试一试
我认为NSDateComponents将只返回当前日期组件,而不是总天数、周数和月数。如果我错了,请纠正我。我认为NSDateComponents将只返回当前日期组件,而不是总天数、周数和月数。如果我错了,请纠正我。我认为NSDateComponents将只返回当前日期组件,而不是总天数、周数和月数。如果我错了,请纠正我。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"];
NSDate * startDate = [formatter dateFromString:dateString];
NSCalendar *calender = [NSCalendar currentCalendar];
unsigned units = (NSYearCalendarUnit|NSMonthCalendarUnit|NSWeekCalendarUnit|
NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit);
NSDateComponents *dateComponents = [calender components:units
fromDate:startDate];
int seconds = dateComponents.second;
int minutes = dateComponents.minute;
int hours = dateComponents.hour;
int days = dateComponents.day;
int weeks = dateComponents.week;
int months = dateComponents.month;
int years = dateComponents.year;