`
zcw_java
  • 浏览: 303874 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

NSDate-常用操作及控制

 
阅读更多
对于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经典入门源代码

    Objective-C的基础框架,包括许多常用数据类型(如NSArray、NSDictionary)和系统服务(如NSFileManager、NSDate)。这些类提供了处理基本数据和系统功能的方法。 UIKit框架: 在iOS开发中,UIKit提供了一系列的类...

    OC-sleepUntilDate

    在iOS和macOS开发中,Objective-C(OC)是一种常用的语言,它提供了丰富的API来处理各种任务,包括线程管理和时间控制。`sleepUntilDate:`是NSThread类的一个方法,这个方法允许线程暂停执行,直到指定的日期和时间...

    键值编码与键值观察

    常用方法及数据类型说明 - **添加观察者**: `- (void)addObserver:(NSObject *)anObserver forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context` - `options` ...

    NSTimer 定时器示例

    在`NSDateTimerDemo`项目中,这些操作可能被封装在不同的方法中,以便用户可以交互式地控制定时器的状态。例如,可能有一个`startTimer`方法来启动定时器,`pauseTimer`来暂停,`resumeTimer`来继续,以及`stopTimer...

    OC的项目底层框架,工具类,封装

    封装是面向对象编程的重要概念,它将数据和操作数据的方法绑定在一起,对外提供有限的接口。在OC中,封装体现在以下几个方面: 1. 属性封装:使用@property关键字定义属性,通过setter和getter方法访问,实现数据...

    ios动画简单使用

    而`CABasicAnimation`属于Core Animation框架,它直接作用于`CALayer`层,提供了更底层的控制和更丰富的动画效果。`CABasicAnimation`在处理复杂的图形变换和叠加效果时更为高效,但当涉及视图内容的放大或复杂变形...

    IOS 中NSTimer定时器的使用

    nstimer 是 iOS 开发中一个常用的工具,用于执行周期性的任务。它的工作原理是将自身添加到RunLoop(运行循环)中,然后按照设定的时间间隔触发指定的方法。在本文中,我们将深入探讨如何在 iOS 中使用 NSTimer,...

    Swift-Essentials:我在每个iOS应用程序中使用的一组必需的Swift东西

    例如,NSArray和NSDictionary用于存储和操作数据,NSURLConnection或URLSession用于网络请求,NSDate和NSCalendar用于日期和时间处理。 4. **Swift库的使用**:在Swift-Essentials中,可能包含了一些常用的第三方库...

    FCUtilities:我的应用程序需要的常见iOS实用程序。 希望一些对您有用

    FCUtilities可能包含了一些常见的类别扩展,如NSArray、NSDictionary或NSDate,提供了一些便捷的方法,如安全访问元素、日期格式化等。 2. **Blocks(Block)**: Blocks是Objective-C的一个重要特性,它允许在...

    DJ_Framework

    框架可能对系统的某些类进行了扩展,比如NSDate、NSString等,增加了一些便捷的分类方法,使开发者能够更高效地操作这些对象。 6. **小工具集成**: DJ_Framework 还集成了各种实用的小工具,如日志记录、调试...

Global site tag (gtag.js) - Google Analytics