NSDateFormatter的作用


NSString * -> NSDate *

- (nullable NSDate *)dateFromString:(NSString *)string;

NSDate * -> NSString *

- (NSString*)stringFromDate:(NSDate*)date;

常见的日期格式

http://www.cnblogs.com/mailingfeng/archive/2011/07/28/2120422.html

NSString * -> NSDate *  2015-11-20 09:10:05

// 时间字符串

NSString*string =@"2015-11-20 09:10:05";

// 日期格式化类NSDateFormatter*fmt = [[NSDateFormatteralloc] init];

// 设置日期格式(为了转换成功)

fmt.dateFormat=@"yyyy-MM-dd HH:mm:ss";

// NSString * -> NSDate *

NSDate*date = [fmt dateFromString:string];NSLog(@"%@", date);

11月-20号/2015年 09-10:05秒

// 时间字符串

NSString*string =@"11月-20号/2015年 09-10:05秒";

// 日期格式化类

NSDateFormatter*fmt = [[NSDateFormatteralloc] init];fmt.dateFormat=@"MM月-dd号/yyyy年 HH-mm:ss秒";

NSLog(@"%@", [fmt dateFromString:string]);

Tue May 31 17:46:55 +0800 2011

// 时间字符串

NSString*string =@"Tue May 31 17:46:55 +0800 2011";

// 日期格式化类NSDateFormatter*fmt = [[NSDateFormatteralloc] init];fmt.dateFormat=@"EEE MMM dd HH:mm:ss Z yyyy";

// fmt.dateFormat = @"EEE MMM dd HH:mm:ss ZZZZ yyyy";

// 设置语言区域(因为这种时间是欧美常用时间)

fmt.locale= [[NSLocalealloc] initWithLocaleIdentifier:@"en_US"];NSLog(@"%@", [fmt dateFromString:string]);

1745645645645

// 时间戳 : 从1970年1月1号 00:00:00开始走过的毫秒数

// 时间字符串 - 时间戳

NSString*string =@"1745645645645";NSTimeIntervalsecond = string.longLongValue/1000.0;

// 时间戳 -> NSDate *NSDate*date = [NSDatedateWithTimeIntervalSince1970:second];NSLog(@"%@", date);

NSCalendar的注意点

#define iOS(version) ([UIDevice currentDevice].systemVersion.doubleValue >= (version))

NSCalendar*calendar =nil;if([UIDevicecurrentDevice].systemVersion.doubleValue>=8.0) {    calendar = [NSCalendarcalendarWithIdentifier:NSCalendarIdentifierGregorian];}else{    calendar = [NSCalendarcurrentCalendar];}NSCalendar*calendar =nil;

if([NSCalendarrespondsToSelector:@selector(calendarWithIdentifier:)]) {   

calendar = [NSCalendarcalendarWithIdentifier:NSCalendarIdentifierGregorian];

}else{   

calendar = [NSCalendarcurrentCalendar];

}

NSDate * -> NSString *

NSDate*date = [NSDatedate];NSDateFormatter*fmt = [[NSDateFormatteralloc] init];fmt.dateFormat=@"yyyy年MM月dd号 HH:mm:ss";NSString*string = [fmt stringFromDate:date];

获得日期元素

NSString*string =@"2015-11-20 09:10:05";NSString*month = [string substringWithRange:NSMakeRange(5,2)];NSLog(@"%@", month);

// 时间字符串NSString*string =@"2015-11-20 09:10:05";

// 日期格式化类NSDateFormatter*fmt = [[NSDateFormatteralloc] init];

// 设置日期格式(为了转换成功)fmt.dateFormat=@"yyyy-MM-dd HH:mm:ss";// NSString * -> NSDate *NSDate*date = [fmt dateFromString:string];

// 利用NSCalendar处理日期NSCalendar*calendar = [NSCalendarcurrentCalendar];NSIntegermonth = [calendar component:NSCalendarUnitMonthfromDate:date];

NSIntegerhour = [calendar component:NSCalendarUnitHourfromDate:date];

NSIntegerminute = [calendar component:NSCalendarUnitMinutefromDate:date];

NSLog(@"%zd %zd %zd", month, hour, minute);

// 时间字符串

NSString*string =@"2015-11-20 09:10:05";

// 日期格式化类

NSDateFormatter*fmt = [[NSDateFormatteralloc] init];

// 设置日期格式(为了转换成功)

fmt.dateFormat=@"yyyy-MM-dd HH:mm:ss";

// NSString * -> NSDate *NSDate*date = [fmt dateFromString:string];

// 利用NSCalendar处理日期

NSCalendar*calendar = [NSCalendarcurrentCalendar];NSCalendarUnitunit =NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;NSDateComponents*cmps = [calendar components:unit  fromDate:date];

//    NSLog(@"%zd %zd %zd", cmps.year, cmps.month, cmps.day);NSLog(@"%@", cmps);

日期比较

// 时间字符串NSString*createdAtString =@"2015-11-20 11:10:05";NSDateFormatter*fmt = [[NSDateFormatteralloc] init];fmt.dateFormat=@"yyyy-MM-dd HH:mm:ss";NSDate*createdAtDate = [fmt dateFromString:createdAtString];

// 手机当前时间NSDate*nowDate = [NSDatedate];/**

NSComparisonResult的取值

NSOrderedAscending = -1L,

// 升序, 越往右边越大

NSOrderedSame,

  // 相等

NSOrderedDescending

// 降序, 越往右边越小

*/// 获得比较结果(谁大谁小)

NSComparisonResultresult = [nowDate compare:createdAtDate];if(result ==NSOrderedAscending) {

// 升序, 越往右边越大NSLog(@"createdAtDate > nowDate");}elseif(result ==NSOrderedDescending) {

// 降序, 越往右边越小NSLog(@"createdAtDate < nowDate");}else{NSLog(@"createdAtDate == nowDate");}

// 时间字符串

NSString*createdAtString =@"2015-11-20 09:10:05";

NSDateFormatter*fmt = [[NSDateFormatteralloc] init];fmt.dateFormat=@"yyyy-MM-dd HH:mm:ss";NSDate*createdAtDate = [fmt dateFromString:createdAtString];

// 手机当前时间

//    NSDate *nowDate = [NSDate date];// 获得createdAtDate和nowDate的时间间隔(间隔多少秒)

//    NSTimeInterval interval = [nowDate timeIntervalSinceDate:createdAtDate];NSTimeIntervalinterval = [createdAtDate timeIntervalSinceNow];NSLog(@"%f", interval);

NSDateFormatter*fmt = [[NSDateFormatteralloc] init];fmt.dateFormat=@"yyyy-MM-dd HH:mm:ss";

// 时间字符串NSString*createdAtString =@"2015-11-01 09:10:05";NSDate*createdAtDate = [fmt dateFromString:createdAtString];

// 其他时间NSString*otherString =@"2015-10-31 08:56:45";NSDate*otherDate = [fmt dateFromString:otherString];

// 获得

NSCalendarNSCalendar*calendar =nil;

if([NSCalendarrespondsToSelector:@selector(calendarWithIdentifier:)]) {    calendar = [NSCalendarcalendarWithIdentifier:NSCalendarIdentifierGregorian];

}else{ 

  calendar = [NSCalendarcurrentCalendar];

}

// 获得日期之间的间隔

NSCalendarUnitunit =NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;NSDateComponents*cmps = [calendar components:unit fromDate:createdAtDate toDate:otherDate options:0];

NSLog(@"%@", cmps);

条件判断的一些注意点

1.判断一个数组中是否有具体内容

1> 正确

if(array.count) {

}

2> 错误

if(array) {

}

2.判断一个字符串是否有具体内容

1> 正确

if(string.length) {

}

2>错误

if(string) {

}

如有疑问:请加QQ群:  246807516   拒绝不冒泡的咸鱼加入

你可能感兴趣的:(NSDateFormatter的作用)