日期的一些方法,日期转字符串,字符串转日期,前一个月和后一个月
2017-03-06 15:22
323 查看
#pragma mark - date转字符串
-(NSString *)DateToString:(NSDate *)date{
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *newDataStr = [formatterstringFromDate:date];
return newDataStr;
}
#pragma mark -字符串转date
-(NSDate *)stringTodate:(NSString *)dateStr{
NSDateFormatter *format = [[NSDateFormatteralloc]init];
format.dateFormat =@"yyyy-MM";
NSDate *date = [formatdateFromString:dateStr];
return date;
}
#pragma mark - 获取上月或者下个月
- (void)setupRequestMonth:(NSString *)currentDateStr{
NSDate *currentDate = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:@"yyyy-MM"];
NSCalendar *calendar = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *lastMonthComps = [[NSDateComponentsalloc]init];
// [lastMonthComps setYear:1]; // year = 1表示1年后的时间
year = -1为1年前的日期,month day类推
[lastMonthComps setMonth:-1];//传1就是下一个月
NSDate *newdate = [calendardateByAddingComponents:lastMonthCompstoDate:currentDateoptions:0];
NSString *dateStr = [formatterstringFromDate:newdate];
NSLog(@"date str = %@", dateStr);
}
#pragma mark - 获取当月的第一天和最后一天
- (NSString *)getMonthBeginAndEndWith:(NSString *)dateStr{
NSDateFormatter *format=[[NSDateFormatteralloc]init];
[format setDateFormat:@"yyyy-MM"];
NSDate *newDate=[formatdateFromString:dateStr];
double interval =0;
NSDate *beginDate =nil;
NSDate *endDate =nil;
NSCalendar *calendar = [NSCalendarcurrentCalendar];
[calendar setFirstWeekday:2];//设定周一为周首日
BOOL ok = [calendarrangeOfUnit:NSMonthCalendarUnitstartDate:&beginDateinterval:&interval
forDate:newDate];
//分别修改为 NSDayCalendarUnit NSWeekCalendarUnit NSYearCalendarUnit
if (ok) {
endDate = [beginDate dateByAddingTimeInterval:interval-1];
}else {
return@"";
}
NSDateFormatter *myDateFormatter = [[NSDateFormatteralloc]init];
[myDateFormatter setDateFormat:@"YYYY-MM-dd"];
NSString *beginString = [myDateFormatterstringFromDate:beginDate];
NSString *endString = [myDateFormatterstringFromDate:endDate];
NSString *s = [NSStringstringWithFormat:@"%@----%@",beginString,endString];
return s;
}
-(NSString *)DateToString:(NSDate *)date{
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *newDataStr = [formatterstringFromDate:date];
return newDataStr;
}
#pragma mark -字符串转date
-(NSDate *)stringTodate:(NSString *)dateStr{
NSDateFormatter *format = [[NSDateFormatteralloc]init];
format.dateFormat =@"yyyy-MM";
NSDate *date = [formatdateFromString:dateStr];
return date;
}
#pragma mark - 获取上月或者下个月
- (void)setupRequestMonth:(NSString *)currentDateStr{
NSDate *currentDate = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:@"yyyy-MM"];
NSCalendar *calendar = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *lastMonthComps = [[NSDateComponentsalloc]init];
// [lastMonthComps setYear:1]; // year = 1表示1年后的时间
year = -1为1年前的日期,month day类推
[lastMonthComps setMonth:-1];//传1就是下一个月
NSDate *newdate = [calendardateByAddingComponents:lastMonthCompstoDate:currentDateoptions:0];
NSString *dateStr = [formatterstringFromDate:newdate];
NSLog(@"date str = %@", dateStr);
}
#pragma mark - 获取当月的第一天和最后一天
- (NSString *)getMonthBeginAndEndWith:(NSString *)dateStr{
NSDateFormatter *format=[[NSDateFormatteralloc]init];
[format setDateFormat:@"yyyy-MM"];
NSDate *newDate=[formatdateFromString:dateStr];
double interval =0;
NSDate *beginDate =nil;
NSDate *endDate =nil;
NSCalendar *calendar = [NSCalendarcurrentCalendar];
[calendar setFirstWeekday:2];//设定周一为周首日
BOOL ok = [calendarrangeOfUnit:NSMonthCalendarUnitstartDate:&beginDateinterval:&interval
forDate:newDate];
//分别修改为 NSDayCalendarUnit NSWeekCalendarUnit NSYearCalendarUnit
if (ok) {
endDate = [beginDate dateByAddingTimeInterval:interval-1];
}else {
return@"";
}
NSDateFormatter *myDateFormatter = [[NSDateFormatteralloc]init];
[myDateFormatter setDateFormat:@"YYYY-MM-dd"];
NSString *beginString = [myDateFormatterstringFromDate:beginDate];
NSString *endString = [myDateFormatterstringFromDate:endDate];
NSString *s = [NSStringstringWithFormat:@"%@----%@",beginString,endString];
return s;
}
相关文章推荐
- Android工具类,一些方法电话正则,是否为空,日期格式化,星期,车牌,身份证校验,设置地区编码,验证日期字符串是否是YYYY-MM-DD格式,判断字符串是否为数字
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- 关于日期方面的一些方法和函数
- 处理编码和日期的通用字符串转换方法
- 时间日期的一些处理方法(code)
- Asp.net日期字符串格式化显示方法
- C# string格式的日期时间字符串转为DateTime类型的方法
- 字符串的一些处理方法
- Asp.net日期字符串格式化显示方法
- Asp.net日期字符串格式化显示方法
- Asp.net日期字符串格式化显示方法
- C#中字符串处理的一些自定义方法
- JavaScript中处理日期的一些函数和方法
- C#中字符串处理的一些自定义方法
- Asp.net日期字符串格式化显示方法
- 字符串数组的一些处理方法总结
- Asp.net日期字符串格式化显示方法
- Asp.net日期字符串格式化显示方法[转]
- 获取字符串格式日期的年月日以及转换为TimeStamp类型的方法
- Asp.net日期字符串格式化显示方法