So I have a unixtime datetime stamp. For arguments sake, lets say it's now at 23:49:24 on 21/02/2011 (GMT). This would be:
1298332164
Now, is there anyway to remove the seconds component from this?开发者_StackOverflow中文版 I'm writing this in Obj-C so currently I have:
NSDate *todayNow = [NSDate date];
int unixtimeNow = [todayNow timeIntervalSince1970];
And would end up with:
1298332140
Thanks
In Cocoa, you can do it like this:
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger calendarUnits = NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *dateComps = [calendar components:calendarUnits fromDate:todayNow];
[dateComps setSecond:0];
NSDate *todayNowNoSeconds = [calendar dateFromComponents:dateComps];
What about 1298332164 / 60 * 60 ?
NSTimeInterval seconds = fmod([self timeIntervalSince1970], 60);
NSDate *secondsTrimmedDtae = [self dateByAddingTimeInterval:-seconds];
Note self refers to NSDate
instance you have to replace self with your date obj.
精彩评论