一、使用的类对象
NSDate、NSDateFormatter
二、获取当前时间格式化字符串
- (NSString*)getCurrTimeStr{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm";
formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
NSString *dateStr = [formatter stringFromDate:[NSDate date]];
return dateStr;
}
三、根据服务器时间戳获取时间字符串
#pragma mark 根据服务器时间戳获取时间字符串
- (NSString*)getCreateTime:(NSNumber*)timestamp{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timestamp integerValue]];
NSString *dateStr = [dateFormatter stringFromDate:date];
return dateStr;
}
四、返回指定格式字符串的nsdate
- (NSDate *)getDateFromString:(NSString *)dateString WithFormat:(NSString *)format
{
NSTimeZone* GTMzone = [NSTimeZone systemTimeZone];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:format];
[dateFormatter setTimeZone:GTMzone];
NSDate *bdate = [dateFormatter dateFromString:dateString];
return bdate;
}
//单位 s
//想取得毫秒时用获取到的时间戳 *1000 ,想取得微秒时 用取到的时间戳 * 1000 * 1000
//1476761646.101464
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970];
NSLog(@"the interval is %f",interval);
六、根据时间字符串,获取距当前时间是几分钟前、几小时前、几天前的数据
- (NSString*)getFormatTimeStr:(NSString *)oldDateStr{
if(oldDateStr.length != 19){
return @"";
}
NSDateFormatter *date = [[NSDateFormatter alloc]init];
[date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *oldDate =[date dateFromString:oldDateStr];
NSDate *currDate = [NSDate date];
NSTimeInterval value = [currDate timeIntervalSinceDate:oldDate];
NSString *str;
if (value > 0 && value <= 60) {
str = @"刚刚";
}else if (value <= 3600){
int minute = value / 60;
if(minute > 5){
str = [NSString stringWithFormat:@"%d分钟前",minute];
}else{
str = @"刚刚";
}
}else if (value <= 3600 * 24){
NSLog(@"%d小时前",(int)(value / 60 / 60));
str = [NSString stringWithFormat:@"%d小时前",(int)(value / 60 / 60)];
}else{
NSLog(@"%d天前",(int)(value / 60 / 60 /24));
NSString *tempStr = [oldDateStr substringToIndex:10];
str = [tempStr stringByReplacingOccurrencesOfString:@"-" withString:@"."];
}
return str;
}
七、返回指定日期对应星期几
- (int)getWeekFromDate:(NSDate *)date
{
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit |
NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *comps = [calendar components:unitFlags fromDate:date];
int week = comps.weekday;
return week;
}