Foundation之NSDate总结

一.NSDare初始化:

获取当前日期:NSDate *dare = [NSDate date];

此时 date 代表的就是当前时间,默认是时区格林治时间(0 时区时间) 


2.常用api: 

获取从某个日期开始之前或者往后多久的日期,
此处60代表晚60秒,如果需要获取之前的,将60改为-60即可

NSDate *date = [[NSDate alloc] initWithTimeInterval:60 sinceDate:[NSDate date]];

创建一个比 date 晚 5 秒钟的时间:
NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];

从 1970 开始走过的秒数:
NSTimeInterval seconds = [date2 timeIntervalSince1970];


当前时间跟 date2 相差多少秒:
[date2 timeIntervalSinceNow];


获取较早的日期
[[NSDate date] earlierDate:date]; [NSDate date] 比 date 早
//获取较晚的日期
- (NSDate *)laterDate:(NSDate *)anotherDate;

 3.日期格式化:

日期格式化类用法:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
y年
M月
d日
m分
s秒
H (24)时
h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; 
NSString *str = [formatter stringFromDate:date];

 4.将本地日期字符串转为UTC日期字符串:

        本地字符串
        NSDate *date = [NSDate date];
        NSDateFormatter *farmatter  = [[NSDateFormatter alloc] init];
        farmatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
        NSString *str = [farmatter stringFromDate:date];
        
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        输入格式
        [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        
        NSDate *dateFormatted = [dateFormatter dateFromString:str];
        NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
        [dateFormatter setTimeZone:timeZone];
        
        //输出格式
        [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
        NSString *dateString = [dateFormatter stringFromDate:dateFormatted];

        NSLog(@"%@",dateString);

5.将UTC日期字符串转为本地时间字符串

 

2018-07-31T08:31:51+0000

-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate
{
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  //输入格式
  [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
  NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
  [dateFormatter setTimeZone:localTimeZone];

  NSDate *dateFormatted = [dateFormatter dateFromString:utcDate];
  //输出格式
  [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
  NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
  return dateString;
}

6.获取当前年月日:

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy/MM/dd"]; //日期格式

    如果还想要获取时分秒,直接在这里指定时分秒的OPTIONS就行了.
    NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday; 

    NSDateComponents *component = [calendar components:unit fromDate:[NSDate date]];
   获取年月日操作,时分秒也是这个api,只是调用属性不同而已.记得unit要加上时分秒的OPTIONS哦
    NSInteger currentYear = component.year;
    NSInteger currentMonth = component.month;
    NSInteger currentDay = component.day;
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值