NSDate 那点事(时间处理封装)

850 阅读2分钟

进行项目开发,很多时候会需要处理时间的问题。比如常处理的有时间与时间戳的相互转换、时间NSDate的格式化为字符串类型,字符串转换为NSDate类型等。就一些简单的常用的时间处理进行封装。
直接撸代码:.h文件

/**
 *
 * 此类用于时间的处理。具体使用看以下类方法的注释。。
 *
 * Created by Sheffi on 16/10/17。
 *
 */

#import 

@interface processingTime : NSObject
/**
 *  时间转换为时间戳方法
 *
 *  @param date 要转换的时间(NSDate的类型)
 *
 *  @return 时间戳字符串
 */
+(NSString *)timeStampWithDate:(NSDate *)date;
/**
 *  时间戳转换为时间字符串的方法
 *
 *  @param timeStamp 时间戳
 *  @param formatString 格式化的格式 例如:@"yyyy-MM-dd HH:mm"
 *
 *  @return 时间字符串
 */
+(NSString *)dateStringWithTimeStamp:(NSString *)timeStamp andFormatString:(NSString *)formatString;
/**
 *  格式化NSDate
 *
 *  @param date NSDate类型的时间
 *  @param formatString 格式化的格式 例如:@"yyyy-MM-dd HH:mm"
 *
 *  @return 格式化后的时间字符串
 */
+(NSString *)dateStringWithDate:(NSDate *)date andFormatString:(NSString *)formatString;
/**
 *  获取当前时间并进行格式化
 *
 *  @param formatString 格式化的格式 例如:@"yyyy-MM-dd HH:mm"
 *
 *  @return 返回格式化后的当前时间字符串
 */
+(NSString *)getCurrentDateWithFormatString:(NSString *)formatString;
/**
 *  时间字符串转换为NSDate类型
 *
 *  @param dateString 时间字符串
 *  @param formatString 格式化的格式,注意:这里的格式一定要和传入的时间字符串的格式一致,否则无法进行转换
 *
 *  @return 转换后的时间(NSDate类型)
 */
+(NSDate *)dateWithDateString:(NSString *)dateString andFormatString:(NSString *)formatString;
@end

.m文件具体实现

#import "processingTime.h"

@implementation processingTime

+(NSString *)timeStampWithDate:(NSDate *)date{
    NSString *timeStamp = [NSString stringWithFormat:@"%ld",(long)[date timeIntervalSince1970]];
    return timeStamp;
}

+(NSString *)dateStringWithTimeStamp:(NSString *)timeStamp andFormatString:(NSString *)formatString{
    NSString *dateString;
    NSDate *tmpDate = [NSDate dateWithTimeIntervalSince1970:[timeStamp floatValue]];
    NSDateFormatter *format=[[NSDateFormatter alloc] init];
    [format setDateFormat:formatString];
    dateString = [format stringFromDate:tmpDate];
    return dateString;
}

+(NSString *)dateStringWithDate:(NSDate *)date andFormatString:(NSString *)formatString{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:formatString];
    NSString *dateString = [dateFormatter stringFromDate:date];
    NSLog(@"dateString:%@",dateString);
    return dateString;
}

+(NSString *)getCurrentDateWithFormatString:(NSString *)formatString{
    NSDate *currentDate = [NSDate date];
    NSString *currentDateString = [self dateStringWithDate:currentDate andFormatString:formatString];
    return currentDateString;
}

+(NSDate *)dateWithDateString:(NSString *)dateString andFormatString:(NSString *)formatString{
    NSDate *tmpDate;
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:formatString];
    tmpDate = [dateFormatter dateFromString:dateString];
    return tmpDate;
}
@end

以上如有错误,请留言指出。感激不尽。