#define dateFormatDefine @"yyyy-MM-dd HH:mm:ss"
// 获取当前系统区位时间
- (NSDate *)dateFromNow{
NSDate *date =[NSDate date];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate: date];
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
// 指定日历的算法 NSCalendarIdentifierGregorian,NSGregorianCalendar
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
// NSDateComponent 可以获得日期的详细信息,即日期的组成
NSDateComponents *comps = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:date];
NSLog(@"年 = year = %ld",comps.year);
NSLog(@"月 = month = %ld",comps.month);
NSLog(@"日 = day = %ld",comps.day);
NSLog(@"时 = hour = %ld",comps.hour);
NSLog(@"分 = minute = %ld",comps.minute);
NSLog(@"秒 = second = %ld",comps.second);
NSLog(@"星期 = weekDay = %ld ",comps.weekday);
return localeDate;
}
//时间字符串转换为日期格式
- (NSDate *)dateFromString:(NSString *)str{
//实例化一个NSDateFormatter对象
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormat setDateFormat:dateFormatDefine];
// 设置时间格式的时区 东八区 北京时间
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
return [dateFormat dateFromString:str];
}
//日期转换为时间字符串
- (NSString *)stringFromdate:(NSDate *)date {
//实例化一个NSDateFormatter对象
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormat setDateFormat:dateFormatDefine];
// 设置时间格式的时区 东八区 北京时间
[dateFormat setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
return [dateFormat stringFromDate:date];
}
// 日期字符串的比较
- (NSString *)dateBiJiao:(NSString *)str1 str2:(NSString *)str2 {
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSDate *date1 = [dateFormatter dateFromString:str1];
NSDate *date2 = [dateFormatter dateFromString:str2];
NSLog(@"用于比较的第一个时间 = %@", [self dateFromString:str1]);
NSLog(@"用于比较的第二个时间 = %@", [self dateFromString:str2]);
NSDate *r = [date1 laterDate:date2]; //返回较晚的那个日期
if([date1 isEqualToDate:date2]) {
NSLog(@"日期相同");
return @"相同";
}else{
NSLog(@"日期不相同");
if([r isEqualToDate:date2]) {
return @"未过期";
}else{
return @"已过期";
}
}
}