NSDate的常用用法

NSDate的常用用法
1. 创建或初始化可用以下方法

用于创建NSDate实例的类方法有+ (id)date;
返回当前时间

+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;返回以当前时间为基准,然后过了secs秒的时间

    +
(id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)
secs;

返回以2001/01/01 GMT为基准,然后过了secs秒的时间

    +
(id)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;

返回以1970/01/01 GMT为基准,然后过了secs秒的时间

    + (id)distantFuture;

返回很多年以后的未来的某⼀一天。比如你需要⼀一个比现在(Now)()很长时间的时间值,则可以调用该方法。

    + (id)distantPast;
  返回很多年以前的某⼀一天。

比如你需要⼀一个比现在(Now)()大很长时间的时间值,则可以调用该方法。

用于创建NSDate实例的实例方法有
- (id)addTimeInterval:(NSTimeInterval)secs;返回以目前的实例中保存的时间为基准,然后过了secs秒的时间

用于初始化NSDate实例的实例方法有- (id)init;初始化为当前时间。类似date方法

    -
(id)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)
secs;

初始化为以2001/01/01 GMT为基准,然后过了secs秒的时间。类似dateWithTimeIntervalSinceReferenceDate:方法

    - (id)initWithTimeInterval:(NSTimeInterval)secs
sinceDate:(NSDate *)refDate;

初始化为以refDate为基准,然后过了secs秒的时间

- (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;初始化为以当前时间为基准,然后过了secs秒的时间

3. 取回时间间隔可用以下方法

    - (NSTimeInterval)timeIntervalSinceDate:(NSDate
*)refDate;

refDate为基准时间,返回实例保存的时间与refDate的时间间隔

    - (NSTimeInterval)timeIntervalSinceNow;

以当前时间(Now)为基准时间,返回实例保存的时间与当前时间(Now)的时间间隔

    - (NSTimeInterval)timeIntervalSince1970;

1970/01/01 GMT为基准时间,返回实例保存的时间与1970/01/01 GMT的时间间隔

    - (NSTimeInterval)timeIntervalSinceReferenceDate;

2001/01/01 GMT为基准时间,返回实例保存的时间与2001/01/01 GMT的时间间隔

    + (NSTimeInterval)timeIntervalSinceReferenceDate;

2001/01/01 GMT为基准时间,返回当前时间(Now)2001/01/01 GMT的时间间隔

*/

// 时区类
// 获得系统时区

NSTimeZone *tz = [NSTimeZone systemTimeZone];
// 获得当前时间距离GMT时间相差的秒数!
NSInteger seconds = [tz secondsFromGMTForDate:[NSDate

date]];
// [NSDate date]时间为基准,间隔seconds秒后的时间!NSDate *localDate = [NSDate

dateWithTimeInterval:seconds sinceDate:[NSDate date]]; // 北京时间

           NSLog(@"localDate = %@",localDate);

// 日期和字符串相互转换

// 日期格式的类!
NSDateFormatter *df = [[NSDateFormatter alloc] init];// 2013-11-27 11:00:57
// HH 24
小时进制 hh 12小时进制
df.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *dateStr = [df stringFromDate:[NSDate date]];NSLog(@"dateStr = %@", dateStr);

       NSDate *dateTest = [df dateFromString:@"2013-11-27
11:00:57"];

NSLog(@"dateTest = %@", dateTest);//默认是格林威治时间需要转化为北京时间

NSTimeZone *tz = [NSTimeZone systemTimeZone];// 获得dateTest距离GMT时间相差的秒数!NSInteger seconds = [tz

secondsFromGMTForDate:dateTest];

NSDate *localDate = [NSDatedateWithTimeInterval:seconds sinceDate: dateTest]; // 北京时间

       NSLog(@"localDate = %@",localDate);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值