1.時(shí)間字符串的轉(zhuǎn)化
//日期轉(zhuǎn)時(shí)間
- (NSString *)dateToString:(NSDate *)date {
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:date];
return dateString;
}
//字符串轉(zhuǎn)時(shí)間戳
- (NSTimeInterval)dateWithString:(NSString *)string {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [dateFormatter dateFromString:string];
return date.timeIntervalSince1970;
}
2.常見的時(shí)間轉(zhuǎn)化
- (NSString *)formattedDateDescription
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *theDay = [dateFormatter stringFromDate:self];//日期的年月日
NSString *currentDay = [dateFormatter stringFromDate:[NSDate date]];//當(dāng)前年月日
NSInteger timeInterval = -[self timeIntervalSinceNow];
if (timeInterval < 60) {
return @"1分鐘內(nèi)";
} else if (timeInterval < 3600) {//1小時(shí)內(nèi)
return [NSString stringWithFormat:@"%ld分鐘前", timeInterval / 60];
} else if (timeInterval < 21600) {//6小時(shí)內(nèi)
return [NSString stringWithFormat:@"%ld小時(shí)前", timeInterval / 3600];
} else if ([theDay isEqualToString:currentDay]) {//當(dāng)天
[dateFormatter setDateFormat:@"HH:mm"];
return [NSString stringWithFormat:@"今天 %@", [dateFormatter stringFromDate:self]];
} else if ([[dateFormatter dateFromString:currentDay] timeIntervalSinceDate:[dateFormatter dateFromString:theDay]] == 86400) {//昨天
[dateFormatter setDateFormat:@"HH:mm"];
return [NSString stringWithFormat:@"昨天 %@", [dateFormatter stringFromDate:self]];
} else {//以前
[dateFormatter setDateFormat:@"MM-dd HH:mm"];
return [dateFormatter stringFromDate:self];
}
}
3.已經(jīng)知道當(dāng)前時(shí)間苞笨,計(jì)算未來(lái)或者以前的時(shí)間
NSCalendar *calendar = [NSCalendar currentCalendar];
calendar.timeZone = [NSTimeZone localTimeZone];
NSDateComponents *comp = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:date];
//comp可以修改年月日等時(shí)間
[comp setDay:1];
NSDate *firstDayOfMonthDate = [calendar dateFromComponents:comp];
4.固定app的時(shí)區(qū)研底,不會(huì)根據(jù)位置改變(下面是東八區(qū))
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT+0800"]];
更多時(shí)間資料:http://my.oschina.net/yongbin45/blog/156181