对于NSDate常用操作整理,如有不足请补充
1,获取当前时区时间
//初始化时间段
NSDate *date = [NSDate date];
//获取当前时区
NSTimeZone *zone = [NSTimeZone systemTimeZone];
//以秒为单位返回当前应用程序与世界标准时间(格林威尼时间)的时差
NSInteger interval = [zone secondsFromGMTForDate: date];
//补充时差后为当前时间
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
2,将字符串格式化NSDate
NSString *dateStr=@"2013-08-13 20:28:40";
//格式化
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *fromdate=[dateFormatter dateFromString:dateStr];
//时区
NSTimeZone *fromzone = [NSTimeZone systemTimeZone];
//同例1
NSInteger frominterval = [fromzone secondsFromGMTForDate: fromdate];
NSDate *fromDate = [fromdate dateByAddingTimeInterval: frominterval];
NSLog(@"fromdate=%@",fromDate);
//将NSDate转为NSString
NSString *strTime = [fromDate description];
//如果直接将NSDate格式化
NSDate *recv = [NSDate dateFromString:recvTime withFormat:@"yyyy-MM-dd HH:mm:ss Z"];
3,比较两个时间相差(年月日,时分秒)
double intervalTime = [fromDate timeIntervalSinceReferenceDate] - [localeDate timeIntervalSinceReferenceDate];
long lTime = (long)intervalTime;
NSInteger iSeconds = lTime % 60;
NSInteger iMinutes = (lTime / 60) % 60;
NSInteger iHours = (lTime / 3600)$;
NSInteger iDays = lTime/60/60/24;
NSInteger iMonth = lTime/60/60/24/12;
NSInteger iYears = lTime/60/60/24/384;
NSLog(@"相差M年d月 或者 d日d时d分d秒", iYears,iMonth,iDays,iHours,iMinutes,iSeconds);
4,按日期排序
//与otherDate比较,相同返回YES
- (BOOL)isEqualToDate:(NSDate *)otherDate;
//与anotherDate比较,返回较早的那个日期
- (NSDate *)earlierDate:(NSDate *)anotherDate;
//与anotherDate比较,返回较晚的那个日期
- (NSDate *)laterDate:(NSDate *)anotherDate;
//该方法用于排序时调用
- (NSComparisonResult)compare:(NSDate *)other;
//. 当实例保存的日期值与anotherDate相同时返回NSOrderedSame
//. 当实例保存的日期值晚于anotherDate时返回NSOrderedDescending
//. 当实例保存的日期值早于anotherDate时返回NSOrderedAscending
5,从NSDate中获取年月日,时分秒
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit |
NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *comps = [calendar components:unitFlags fromDate:date];
int year = [comps year];
int month = [comps month];
int day = [comps day];
int hour = [comps hour];
int min = [comps minute];
int sec = [comps second];
//获取数据有异常
// NSError *error = [[NSError alloc] init];
// NSData *pData = = [NSData dataWithContentsOfURL:URL options:NSDataReadingMapped error:&error];
// NSLog(@"download string end error = %d", [error code]);
// [error release];
判断12小时或24小时(制)
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"a"];
NSString *AMPMtext = [dateFormatter stringFromDate:[NSDate date]];
[dateFormatter release];
if ([AMPMtext isEqualToString:@""]){
NSLog(@"24小时制");
}
else {
NSLog(@"12小时制");
}
分享到:
相关推荐
Objective-C的基础框架,包括许多常用数据类型(如NSArray、NSDictionary)和系统服务(如NSFileManager、NSDate)。这些类提供了处理基本数据和系统功能的方法。 UIKit框架: 在iOS开发中,UIKit提供了一系列的类...
在iOS和macOS开发中,Objective-C(OC)是一种常用的语言,它提供了丰富的API来处理各种任务,包括线程管理和时间控制。`sleepUntilDate:`是NSThread类的一个方法,这个方法允许线程暂停执行,直到指定的日期和时间...
常用方法及数据类型说明 - **添加观察者**: `- (void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context` - `options` ...
在`NSDateTimerDemo`项目中,这些操作可能被封装在不同的方法中,以便用户可以交互式地控制定时器的状态。例如,可能有一个`startTimer`方法来启动定时器,`pauseTimer`来暂停,`resumeTimer`来继续,以及`stopTimer...
封装是面向对象编程的重要概念,它将数据和操作数据的方法绑定在一起,对外提供有限的接口。在OC中,封装体现在以下几个方面: 1. 属性封装:使用@property关键字定义属性,通过setter和getter方法访问,实现数据...
而`CABasicAnimation`属于Core Animation框架,它直接作用于`CALayer`层,提供了更底层的控制和更丰富的动画效果。`CABasicAnimation`在处理复杂的图形变换和叠加效果时更为高效,但当涉及视图内容的放大或复杂变形...
nstimer 是 iOS 开发中一个常用的工具,用于执行周期性的任务。它的工作原理是将自身添加到RunLoop(运行循环)中,然后按照设定的时间间隔触发指定的方法。在本文中,我们将深入探讨如何在 iOS 中使用 NSTimer,...
例如,NSArray和NSDictionary用于存储和操作数据,NSURLConnection或URLSession用于网络请求,NSDate和NSCalendar用于日期和时间处理。 4. **Swift库的使用**:在Swift-Essentials中,可能包含了一些常用的第三方库...
FCUtilities可能包含了一些常见的类别扩展,如NSArray、NSDictionary或NSDate,提供了一些便捷的方法,如安全访问元素、日期格式化等。 2. **Blocks(Block)**: Blocks是Objective-C的一个重要特性,它允许在...
框架可能对系统的某些类进行了扩展,比如NSDate、NSString等,增加了一些便捷的分类方法,使开发者能够更高效地操作这些对象。 6. **小工具集成**: DJ_Framework 还集成了各种实用的小工具,如日志记录、调试...