iOS 关于时间天数星期月份的总结

摘要:
#import @interfaceNSDate(SLExtend)//判断是否在本周早些时候-(BOOL)是ThisWeekEarly//判断是否是本周晚些时候-

#import <Foundation/Foundation.h>

@interface NSDate (SLExtend)

// 判断是否是本周更早

- (BOOL)isThisWeekEarlier;

// 判断是否是本周晚些

- (BOOL)isThisWeekLater;

// 判断是否是下一周或者更远

- (BOOL)isNextWeekOrLater;

// 判断是否是上一周或者更早

- (BOOL)isLastWeekOrEarlier;

// 判断是否是昨天或更早

- (BOOL)isYesterdayOrEarlier;

// 判断是否是明天或更晚

- (BOOL)isTomorrowOrLater;

// 判断是否是前天

- (BOOL)isTheDayBeforeYesterday;

// 判断是否是昨天

- (BOOL)isYesterDay;

// 判断是否是今天

- (BOOL)isToday;

// 判断是否是明天

- (BOOL)isTomorrow;

// 判断是否是后天

- (BOOL)isTheDayAfterTomorrow;

// 转换成年月日(其他补0)

- (NSDate *)convertDefinitionToDate;

// 转换标准时间

- (NSString *)convertToStandardDateFormat;

// 转换本星期标准时间

- (NSString *)convertToStandardThisWeekDateFormat;

// 转换成标准前天、昨天、今天、明天、后天时间

- (NSString *)convertToStandardRecentlyDateFormat;

// 转换成时间

- (NSString *)convertToStandardTimeDateFormat;

// 转换成标准时间(不带星期)

- (NSString *)convertToStandardNormalDateFormat;

// 转换成YYYY-MM-DD HH:MM:SS格式时间

- (NSString *)convertToStandardYYYYMMDDHHMMSSDateFormat;

// 转换成YYYY-MM-DD

- (NSString *)convertToStandardYYYYMMDDDateFormat;

// 转换成YYYYMMDDHHMMSS

- (NSString *)convertToYYYYMMDDHHMMSSDateFormat;

// 指定日期是星期几,1表示一周的第一天周日

+ (int)weekdayByDate:(NSDate *)date;

+ (NSString *)weekdayInChineseByDate:(NSDate *)date;

// 指定时间往前推多少天

+ (NSDate *)dateWithDays:(NSUInteger)days beforDate:(NSDate *)date;

+ (NSDate *)dateWithDays:(NSUInteger)days afterDate:(NSDate *)date;

// 获取某个时间点前多少天的总集合

+ (NSArray *)dayNamesAtDays:(NSInteger)days beforDate:(NSDate *)date;

// 获取年

+ (int)yearByDate:(NSDate *)date;

// 获取月

+ (int)monthByDate:(NSDate *)date;

// 获取日

+ (int)dayByDate:(NSDate *)date;

// 该日期处于一年中的第几周

+ (int)weekOfYearByDate:(NSDate *)date;

//获取当前的时间HH:mm

+ (NSString *)getCurrentDateHHMM;

//获取当前的时间yyyyMMdd HH:mm

+(NSString *)getCurrentDateYYYYMMDDHHMM;

//获取指定的时间yyyyMMdd

+(NSString *)getDateYYYYMMDD:(NSDate *)date;

// 该月有多少天

+ (int)daysInMonthByDate:(NSDate *)date;

+ (NSString *)convertToyyyMMddHHmmssString:(NSDate *)date;

+ (NSDate *)convertDateFromString:(NSString*)uiDate;

+ (NSDate *)stringToDate:(NSString *)dateString;

@end

#import "NSDate+SLExtend.h"

@implementation NSDate (SLExtend)

- (NSDate *)dateStartOfWeek

{

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

    

    [gregorian setFirstWeekday:2]; //monday is first day

    

    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:self];

    

    NSDateComponents *componentsToSubtract = [[NSDateComponents alloc] init];

    

    [componentsToSubtract setDay: - ((([components weekday] - [gregorian firstWeekday]) + 7 ) % 7)];

    

    NSDate *beginningOfWeek = [gregorian dateByAddingComponents:componentsToSubtract toDate:self options:0];

    

    NSDateComponents *componentsStripped = [gregorian components: (NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: beginningOfWeek];

    

    beginningOfWeek = [gregorian dateFromComponents: componentsStripped]; 

    

    return beginningOfWeek;

}

// ================================ 扩展 ===========================

// 判断是否是昨天或更早

- (BOOL)isYesterdayOrEarlier

{

    NSDate *yesterdayDefintionDate = [NSDate dateWithTimeIntervalSinceNow:-60 * 60 * 24];

    NSDate *definitionDate = [self convertDefinitionToDate];

    if ([yesterdayDefintionDate isEqualToDate:definitionDate]) {

        return YES;

    }

    

    NSDate *earlierDate = [definitionDate earlierDate:[NSDate date]];

    if (earlierDate == self) {

        return YES;

    }

    return NO;

}

// 判断是否是明天或更晚

- (BOOL)isTomorrowOrLater

{

    NSDate *tomorrowDefintionDate = [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24];

    NSDate *definitionDate = [self convertDefinitionToDate];

    if ([tomorrowDefintionDate isEqualToDate:definitionDate]) {

        return YES;

    }

    

    NSDate *laterDate = [definitionDate laterDate:tomorrowDefintionDate];

    if (laterDate == self) {

        return YES;

    }

    return NO;

}

// =================================================================

// 判断是否是下一周或者更远

- (BOOL)isNextWeekOrLater

{

    if (![self isThisWeek]) {

        NSDate *laterDate = [self laterDate:[NSDate date]];

        if (laterDate == self) {

            return YES;

        }

    }

    return NO;

}

// 判断是否是上一周或者更早

- (BOOL)isLastWeekOrEarlier

{

    if (![self isThisWeek]) {

        NSDate *earlierDate = [self earlierDate:[NSDate date]];

        if (earlierDate == self) {

            return YES;

        }

    }

    return NO;

}

// 判断是否是本周

- (BOOL)isThisWeek

{

    NSDate *thisWeekStartDay = [[NSDate date] dateStartOfWeek];

    if ([thisWeekStartDay isEqualToDate:[self dateStartOfWeek]]) {

        return YES;

    }

    return NO;

}

// 判断是否是本周更早

- (BOOL)isThisWeekEarlier

{

    if ([self isThisWeek]) {

        NSDate *earlierDate = [self earlierDate:[NSDate date]];

        if (earlierDate == self) {

            return YES;

        }

    }

    return NO;

}

// 判断是否是本周晚些

- (BOOL)isThisWeekLater

{

    if ([self isThisWeek]) {

        NSDate *laterDate = [self laterDate:[NSDate date]];

        if (laterDate == self) {

            return YES;

        }

    }

    return NO;

}

// 判断是否是前天

- (BOOL)isTheDayBeforeYesterday

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:[NSDate dateWithTimeIntervalSinceNow:-60 * 60 * 24 * 2]];

    NSDate *dayAfterTomorrow = [cal dateFromComponents:components];

    

    components = [cal components:calendarUnit fromDate:self];

    NSDate *otherDate = [cal dateFromComponents:components];

    

    if([dayAfterTomorrow isEqualToDate:otherDate]) {

        return YES;

    }

    return NO;

}

// 判断是否是昨天

- (BOOL)isYesterDay

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:[NSDate dateWithTimeIntervalSinceNow:-60 * 60 * 24]];

    NSDate *today = [cal dateFromComponents:components];

    

    components = [cal components:calendarUnit fromDate:self];

    NSDate *otherDate = [cal dateFromComponents:components];

    

    if([today isEqualToDate:otherDate]) {

        return YES;

    }

    return NO;

}

// 判断是否是今天

- (BOOL)isToday

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:[NSDate date]];

    NSDate *today = [cal dateFromComponents:components];

    

    components = [cal components:calendarUnit fromDate:self];

    NSDate *otherDate = [cal dateFromComponents:components];

    

    if([today isEqualToDate:otherDate]) {

        return YES;

    }

    return NO;

}

// 判断是否是明天

- (BOOL)isTomorrow

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:[NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24]];

    NSDate *tomorrow = [cal dateFromComponents:components];

    

    components = [cal components:calendarUnit fromDate:self];

    NSDate *otherDate = [cal dateFromComponents:components];

    

    if([tomorrow isEqualToDate:otherDate]) {

        return YES;

    }

    return NO;

}

// 判断是否是后天

- (BOOL)isTheDayAfterTomorrow

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:[NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24 * 2]];

    NSDate *dayAfterTomorrow = [cal dateFromComponents:components];

    

    components = [cal components:calendarUnit fromDate:self];

    NSDate *otherDate = [cal dateFromComponents:components];

    

    if([dayAfterTomorrow isEqualToDate:otherDate]) {

        return YES;

    }

    return NO;

}

// 转换成年月日(其他补0)

- (NSDate *)convertDefinitionToDate

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSDate *dateConverted = [cal dateFromComponents:components];

    return dateConverted;

}

// 转换标准时间

- (NSString *)convertToStandardDateFormat

{

    // eg: 2014-01-03 19:36 星期五

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger year = [components year];

    NSInteger month = [components month];

    NSInteger day = [components day];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    NSInteger weekday = [components weekday];

    

    NSString *weekdayStr = nil;

    switch (weekday) {

        case 1:

            weekdayStr = @"星期日";

            break;

        case 2:

            weekdayStr = @"星期一";

            break;

        case 3:

            weekdayStr = @"星期二";

            break;

        case 4:

            weekdayStr = @"星期三";

            break;

        case 5:

            weekdayStr = @"星期四";

            break;

        case 6:

            weekdayStr = @"星期五";

            break;

        case 7:

            weekdayStr = @"星期六";

            break;

        default:

            break;

    }

    NSString *standardDateFormatStr = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d %@", (int)year, (int)month, (int)day, (int)hour, (int)minute, weekdayStr];

    return standardDateFormatStr;

}

// 转换本星期标准时间

- (NSString *)convertToStandardThisWeekDateFormat

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    NSInteger weekday = [components weekday];

    

    NSString *weekdayStr = nil;

    switch (weekday) {

        case 1:

            weekdayStr = @"星期日";

            break;

        case 2:

            weekdayStr = @"星期一";

            break;

        case 3:

            weekdayStr = @"星期二";

            break;

        case 4:

            weekdayStr = @"星期三";

            break;

        case 5:

            weekdayStr = @"星期四";

            break;

        case 6:

            weekdayStr = @"星期五";

            break;

        case 7:

            weekdayStr = @"星期六";

            break;

        default:

            return nil;

            break;

    }

    

    NSString *standardThisWeekDateFormatStr = [NSString stringWithFormat:@"%@ %02d:%02d", weekdayStr, (int)hour, (int)minute];

    return standardThisWeekDateFormatStr;

}

- (NSString *)convertToStandardTimeDateFormat

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSCalendarUnitHour

                                   | NSCalendarUnitMinute);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    

    NSString *timeDateFormatStr = [NSString stringWithFormat:@"%02d:%02d", (int)hour, (int)minute];

    return timeDateFormatStr;

}

- (NSString *)convertToStandardNormalDateFormat

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger year = [components year];

    NSInteger month = [components month];

    NSInteger day = [components day];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    

    NSString *dateFormatStr = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d", (int)year, (int)month, (int)day, (int)hour, (int)minute];

    return dateFormatStr;

}

// 转换成YYYY-MM-DD HH:MM:SS格式时间

- (NSString *)convertToStandardYYYYMMDDHHMMSSDateFormat

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger year = [components year];

    NSInteger month = [components month];

    NSInteger day = [components day];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    NSInteger second = [components second];

    NSString *standardDateFormatStr = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d", (int)year, (int)month, (int)day, (int)hour, (int)minute, (int)second];

    return standardDateFormatStr;

}

- (NSString *)convertToYYYYMMDDHHMMSSDateFormat {

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger year = [components year];

    NSInteger month = [components month];

    NSInteger day = [components day];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    NSInteger second = [components second];

    

    NSString *standardDateFormatStr = [NSString stringWithFormat:@"%04d%02d%02d%02d%02d%02d", (int)year, (int)month, (int)day, (int)hour, (int)minute, (int)second];

    return standardDateFormatStr;

}

// 转换成YYYY-MM-DD

- (NSString *)convertToStandardYYYYMMDDDateFormat

{

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger year = [components year];

    NSInteger month = [components month];

    NSInteger day = [components day];

    

    NSString *standardDateFormatStr = [NSString stringWithFormat:@"%04d-%02d-%02d", (int)year, (int)month, (int)day];

    return standardDateFormatStr;

}

// 转换成标准前天、昨天、今天、明天、后天时间  今天 19:36

- (NSString *)convertToStandardRecentlyDateFormat

{

    NSString *dateStr = nil;

    if ([self isToday]) {

        dateStr = @"今天";

    } else if ([self isTomorrow]) {

        dateStr = @"明天";

    } else if ([self isTheDayAfterTomorrow]) {

        dateStr = @"后天";

    } else if ([self isYesterDay]) {

        dateStr = @"昨天";

    } else if ([self isTheDayBeforeYesterday]) {

        dateStr = @"前天";

    } else {

        NSLog(@"类型错误:%s", __FUNCTION__);

        return nil;

    }

    

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSCalendarUnitHour

                                   | NSCalendarUnitMinute);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:self];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    

    NSString *todayDateFormatStr = [NSString stringWithFormat:@"%@ %02d:%02d", dateStr, (int)hour, (int)minute];

    return todayDateFormatStr;

}

+ (NSDateComponents *)dateComponentsByDate:(NSDate *)date {

    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekCalendarUnit |  NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekdayCalendarUnit | NSWeekdayOrdinalCalendarUnit | NSWeekOfYearCalendarUnit;

    return [calendar components:calendarUnit fromDate:date];

}

+ (int)weekdayByDate:(NSDate *)date {

    return (int)[[self dateComponentsByDate:date] weekday];

}

+ (NSString *)weekdayInChineseByDate:(NSDate *)date {

    NSString *name = nil;

    NSInteger weekday = [NSDate weekdayByDate:date];

    switch (weekday) {

        case 1:

            name = @"周日";

            break;

        case 2:

            name = @"周一";

            break;

        case 3:

            name = @"周二";

            break;

        case 4:

            name = @"周三";

            break;

        case 5:

            name = @"周四";

            break;

        case 6:

            name = @"周五";

            break;

        case 7:

            name = @"周六";

            break;

        default:

            break;

    }

    return name;

}

+ (NSDate *)dateWithDays:(NSUInteger)days beforDate:(NSDate *)date {

    NSTimeInterval interval = [date timeIntervalSinceReferenceDate] - 86400 * days;

    return [NSDate dateWithTimeIntervalSinceReferenceDate:interval];

}

+ (NSDate *)dateWithDays:(NSUInteger)days afterDate:(NSDate *)date {

    NSTimeInterval interval = [date timeIntervalSinceReferenceDate] + 86400 * days;

    return [NSDate dateWithTimeIntervalSinceReferenceDate:interval];

}

+ (NSArray *)dayNamesAtDays:(NSInteger)days beforDate:(NSDate *)date {

    NSMutableArray *names = [NSMutableArray array];

    NSInteger currentMonthDay = [NSDate dayByDate:date];

    

    for (int i = (int)days - 1; i >= currentMonthDay ; i--) {

        NSDate *date = [NSDate dateWithDays:i beforDate:[NSDate date]];

        NSInteger day = [NSDate dayByDate:date];

        [names addObject:[NSString stringWithFormat:@"%d", (int)day]];

    }

    

    for (int i = (int)currentMonthDay - 1; i >= 0; i--) {

        NSDate *date = [NSDate dateWithDays:i beforDate:[NSDate date]];

        NSInteger day = [NSDate dayByDate:date];

        [names addObject:[NSString stringWithFormat:@"%d", (int)day]];

    }

    return names;

}

+ (int)yearByDate:(NSDate *)date {

    return (int)[[self dateComponentsByDate:date] year];

}

+ (int)monthByDate:(NSDate *)date {

    return (int)[[self dateComponentsByDate:date] month];

}

+ (int)dayByDate:(NSDate *)date {

    return (int)[[self dateComponentsByDate:date] day];

}

+ (int)weekOfYearByDate:(NSDate *)date {

    return (int)[[self dateComponentsByDate:date] weekOfYear];

}

+(NSString *)getCurrentDateHHMM

{

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"HH:mm"];

    return [formatter stringFromDate:[NSDate date]];

}

+(NSString *)getCurrentDateYYYYMMDDHHMM

{

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"yyyyMMdd HH:mm"];

    return [formatter stringFromDate:[NSDate date]];

}

+(NSString *)getDateYYYYMMDD:(NSDate *)date

{

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"yyyyMMdd"];

    return [formatter stringFromDate:date];

}

+ (int)daysInMonthByDate:(NSDate *)date {

    NSRange dayRange = [[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:date];

    return (int)dayRange.length;

}

+ (NSString *)convertToyyyMMddHHmmssString:(NSDate *)date {

    NSCalendar *cal = [NSCalendar currentCalendar];

    NSCalendarUnit calendarUnit = (  NSEraCalendarUnit

                                   | NSYearCalendarUnit

                                   | NSMonthCalendarUnit

                                   | NSDayCalendarUnit

                                   | NSCalendarUnitWeekday

                                   | NSCalendarUnitHour

                                   | NSCalendarUnitMinute

                                   | NSCalendarUnitSecond);

    

    NSDateComponents *components = [cal components:calendarUnit fromDate:date];

    NSInteger year = [components year];

    NSInteger month = [components month];

    NSInteger day = [components day];

    NSInteger hour = [components hour];

    NSInteger minute = [components minute];

    NSInteger second = [components second];

    

    NSString *dateFormatStr = [NSString stringWithFormat:@"%04d-%02d-%02d %02d:%02d:%02d", (int)year, (int)month, (int)day, (int)hour, (int)minute, (int)second];

    return dateFormatStr;

}

+ (NSDate *) convertDateFromString:(NSString *)dateString {

    static NSDateFormatter *formatter = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        formatter = [[NSDateFormatter alloc] init];

    });

    [formatter setDateFormat:@"yyyy-MM-dd HH-mm-ss"];

    NSDate *date=[formatter dateFromString:dateString];

    return date;

}

+ (NSDate *)stringToDate:(NSString *)dateString {

    static NSDateFormatter *formatter = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        formatter = [[NSDateFormatter alloc] init];

    });

    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSDate *date=[formatter dateFromString:dateString];

    return date;

}

@end

免责声明:文章转载自《iOS 关于时间天数星期月份的总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决JLINK_v8灯不亮 jtag 提示无法识别USB设备ThinkPHP 3.2 使用不当可能造成敏感信息泄露下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python基础===数据伪造模块faker

介绍文档: https://pypi.org/project/Faker/ https://faker.readthedocs.io/en/latest/ https://faker.readthedocs.io/en/latest/providers.html https://faker.readthedocs.io/en/latest/locales/...

Pandas日期数据处理:如何按日期筛选、显示及统计数据

对于我们宽客相对重要一些,在本地实现回测和交易的宽客,需要自己清洗数据。 而证券行情数据是时间序列数据,和时间索引又分不开,下面这篇文章,帮助我们更好的使用pandas处理和日期时间相关的数据。 该文引自:http://www.mamicode.com/info-detail-1822406.html ---------------------------...

多功能日历插件:Kalendae

Kalendae 主要功能: 便携无依赖,只需添加js和css。 通过css自定皮肤,方便更换。 支持所有现代浏览器和IE8。 支持一天,多天,或范围选择。 可配置显示几个月。 可作为内嵌部件显示,或通过一个或多个input触发。 可以被附加到任何页面元素,不仅仅是命名元素。 可配置的禁选,通过定义日期数组或一个回调函数。 可配置所选日期的格式。 利用m...

oracle 理解执行计划

·BUFFER SORT是BUFFER却不是SORT 用AUTOTRACE查看执行的计划的同学常问到执行计划里的BUFFER SORT是什么意思,这里为什么要排序呢? BUFFER SORT不是一种排序,而是一种临时表的创建方式。BUFFER是执行计划想要表达的重点,是其操作: 在内存中存放一张临时表。SORT修饰BUFFER,表示具体在内存的什么地方存...

iphone 数据存储之属性和归档archive

     在IPHONE中有四种方式可以永久存储数据分别是属性列表、归档、SQLITE3、coredata。前两者、后二者操作的时候有些地方是相同的,以属 性列表和归档来说都会用writeToFile/URL:path atomically:flag 和initWithContentofFile/URL:path;两都都不能直接操作基本数据类型,不过前者不...

IOS开发NSString与int和float的相互转换以及字符串拼接、NSString、NSData、char* 类型之间的转换

一、NSString与int和float的相互转换 NSString *tempA = @"123"; NSString *tempB = @"456"; 1.字符串拼接 NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB]; 2.字符转intint intStr...