Foundation - NSDate

NSDate对象用来表示一个具体的时间点,它存储的是世界标准时间,所以在使用的时候可能会需要根据不同的时区将时间转换为本地时间。

时间转换:默认情况下,通过NSDate获取的日期时间格式为:yyyy-MM-dd HH:mm:ss

// NSDateFormatter类对日期格式进行转换,在使用NSDateFormatter类进行日期转换之前,需要设置日期的格式。
/* 格式化设置
   y 年
   M 月
   d 日
   H / h 时 (24小时制/12小时制)
   m 分
   s 秒
*/

// NSDate类中提供了date方法,用来获取当前标准时区的时间。
NSDate *date = [NSDate date];
NSLog(@"国际标准时间: %@",date);

// 获取系统当前时区
NSTimeZone *zone = [NSTimeZone systemTimeZone];
// 获取当前时区与格林尼治时间的间隔
NSInteger interval = [zone secondsFromGMTForDate:date];
// 获取本地时间
NSDate *localDate = [NSDate dateWithTimeIntervalSinceNow:interval];
NSLog(@"本地时间: %@",localDate);

-(NSString *)stringFromDate:(NSDate *)date;          // NSDate转NSString
-(nullable NSDate *)dataFromString:(NSString *)string;  // NSString转NSDate

// 日期格式转换
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateFormat = @"yyyy年MM月dd日 HH:mm:ss";
NSString date2String = [df stringFromDate:date];
NSLog(@"日期转换字符串: %@",date2String );

NSDate string2Date = [df dateFromString:date2String];
NSLog(@"字符串转换日期: %@",string2Date );


// 比较两个时间对象的先后,可以使用earlierDate以及laterDate方法。
-(NSDate *)earlierDate:(NSDate *)anotherDate;
-(NSDate *)laterDate:(NSDate *)anotherDate;
// 比较两个时间的间隔,可以使用timeIntervalSinceDate:方法。
-(NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate;
// 比较两个日期是否相等,可以使用isEqualToDate:方法。
-(BOOL)isEqualToDate:(NSDate *)otherDate;

NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow: 10];

NSDate *tempDate = [[NSDate alloc] init];
tempDate = [date1 earlierDate:date2];
// 比较两个时间的间隔
NSTimeInterval tInterval = [date2 timeIntervalSinceDate:date1];

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值