1.获取当天的日期
- NSDate *today=[NSDate date];
2.获取当天是星期几
- NSDateFormatter *form= [[NSDateFormatter alloc] init];
- [form setDateFormat:@"EEEE"];
- NSString *week = [form stringFromDate:[NSDate date]];
- NSLog(@"week: ->>%@",week);
3.将NSDate格式化日期为字符串
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
- [formatter setDateFormat:@"yyyy年M月d日"];
- NSString *dateStr=[formatter stringFromDate:date];
- NSLog(@"dateStr ->>%@",dateStr);
4.将字符串日期转换为NSDate
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
- [formatter setDateFormat:@"yyyy年M月d日"];
- NSString *dateStr=@"2012年12月8日";
- NSDate *date=[formatter dateFromString:dateStr];
- NSLog(@"date ->>%@",date);
5.获取两个日期之间的总天数
- NSDate *startDate=[NSDate date];
- NSDate *endDate=[info objectForKey:@"date"];
- NSInteger days = [endDate daysIntervalSince:startDate];
- remainTime.text=[NSString stringWithFormat:@"%d", days];;
使用这种方法得用自定义的一个类: #import "NSDate+Convience.h"
下面是这个类的文件:
- // NSDate+Convience.h
- #import <Foundation/Foundation.h>
- @interface NSDate (Convience)
- - (NSUInteger)numberOfDaysInMonth;
- - (NSUInteger)firstWeekDayInMonth;
- - (NSUInteger)year;
- - (NSUInteger)month;
- - (NSUInteger)day;
- - (NSDate *)offsetMonth:(NSInteger)months;
- - (BOOL)isMonthBefore:(NSDate *)date;
- - (BOOL)isBetween:(NSDate *)startDate and:(NSDate *)endDate;
- - (NSInteger)daysIntervalSince:(NSDate *)date;
- @end
- // NSDate+Convience.m
- #import "NSDate+Convience.h"
- @implementation NSDate (Convience)
- - (NSUInteger)numberOfDaysInMonth
- {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSRange range = [calendar rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:self];
- return range.length;
- }
- - (NSUInteger)firstWeekDayInMonth
- {
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
- [gregorian setFirstWeekday:2]; // monday
- NSDateComponents *compoments = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:self];
- [compoments setDay:1];
- NSDate *date = [gregorian dateFromComponents:compoments];
- return [gregorian ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:date];
- }
- - (NSUInteger)year {
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
- NSDateComponents *components = [gregorian components:NSYearCalendarUnit fromDate:self];
- return [components year];
- }
- - (NSUInteger)month {
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
- NSDateComponents *components = [gregorian components:NSMonthCalendarUnit fromDate:self];
- return [components month];
- }
- - (NSUInteger)day {
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSGregorianCalendar];
- NSDateComponents *components = [gregorian components:NSDayCalendarUnit fromDate:self];
- return [components day];
- }
- - (NSDate *)offsetMonth:(NSInteger)months
- {
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
- [gregorian setFirstWeekday:2];
- NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
- [offsetComponents setMonth:months];
- return [gregorian dateByAddingComponents:offsetComponents toDate:self options:0];
- }
- - (BOOL)isMonthBefore:(NSDate *)date
- {
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- [formatter setDateFormat:@"yyyy"];
- int year1 = [[formatter stringFromDate:self] integerValue];
- int year2 = [[formatter stringFromDate:date] integerValue];
- [formatter setDateFormat:@"M"];
- int month1 = [[formatter stringFromDate:self] integerValue];
- int month2 = [[formatter stringFromDate:date] integerValue];
- if (year2 > year1) {
- return YES;
- }
- if (year1 == year2) {
- if (month2 > month1) {
- return YES;
- }
- }
- return NO;
- }
- - (BOOL)isBetween:(NSDate *)startDate and:(NSDate *)endDate
- {
- NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
- [gregorian setFirstWeekday:2];
- NSDateComponents *components = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:startDate toDate:self options:0];
- if (components.year >= 0 && components.month >= 0 && components.day >= 0) {
- components = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:endDate toDate:self options:0];
- if (components.year <= 0 && components.month <= 0 && components.day <= 0) {
- return YES;
- }
- }
- return NO;
- }
- - (NSInteger)daysIntervalSince:(NSDate *)date
- {
- NSTimeInterval interval = [self timeIntervalSinceDate:date];
- NSInteger days = ceilf(interval/(60*60*24));
- return days;
- }
- @end