第08天OC语言(13):NSDate

2017-07-26  本文已影响5人  liyuhong
须读:看完该文章你能做什么?

NSDate的基本使用

学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

适合所有人,不需要懂的什么

注:(小白直接上手)

一、本章笔记
 一、NSDate
    1.创建
        + (instancetype)date;
        NSDate *now = [NSDate date];
 二、NStimeZone 获取时区
        @property (class, readonly, copy) NSTimeZone *systemTimeZone;// 获取当前时区
        - (NSInteger)secondsFromGMTForDate:(NSDate *)aDate; // 比较两个时区的时间差
        - (instancetype)dateByAddingTimeInterval:(NSTimeInterval)ti NS_AVAILABLE(10_6, 2_0); // 追加时间
 三、NSDateFormatter 时间格式化
    1.初始化
        NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    2.设置时间的格式
        @property (null_resettable, copy) NSString *dateFormat;
 四、NSString 转成 NSDate
        - (nullable NSDate *)dateFromString:(NSString *)string;
  // 注意 : 如果是从 NSString格式化NSDate, 那么 dateFormat 的格式, 必须和字符串中的时间格式一致,否则可能转换失败

二、code
main.m
#pragma mark 13-NSDate
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类

#pragma mark - main函数
int main(int argc, const char * argv[])
{
#pragma 1.NSDate创建 和 基本概念
    // 主要是通过date方法 创建的时间对象, 对象就保持了当前的时间
    NSDate *now = [NSDate date];
    NSLog(@"now = %@",now); // now = 2017-07-20 23:58:26 +0000 --> 0000 是零时区 我们是东八区
    
    // 在 now的基础上追加多少秒
//    NSDate *date = [now dateByAddingTimeInterval:10];
//    NSLog(@"date = %@",date);
    
#pragma 2.获取当前所在的时区(NSTimeZone)
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    // 2.获取当前时区 和 指定时间的时间差
    NSInteger seconds =  [zone secondsFromGMTForDate:now];
    NSLog(@"seconds = %lu",seconds);
    
    NSDate *newDate = [now dateByAddingTimeInterval:seconds];
    NSLog(@"newDate = %@",newDate);
    
#pragma 3.时间格式化
    // xxx年xx月xx日 xx小时xx分钟xx秒
    // xxxx/xx/xx xx/xx/xx
    NSDate *now1 = [NSDate date];
    // 创建一个时间格式化对象
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    // 告诉时间格式化对象, 按照什么样的格式化 来格式化时间
    /*  yyyy 年
        MM   月
        dd   日
        HH 24小时 hh 12小时
        mm   分
        ss   秒
     */
    formatter.dateFormat =@"yyyy年MM月dd日 HH时mm分ss秒";
    // 利用时间格式化 对 时间进行格式化
    NSString *res = [formatter stringFromDate:now1];
    NSLog(@"res = %@",res);
    
    
#pragma 4.字符串 转成 NSDate
    NSString *str = @"2017-07-21 08:12:16 +0000";
    NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
    // 注意 : 如果是从 NSString格式化NSDate, 那么 dateFormat 的格式, 必须和字符串中的时间格式一致,否则可能转换失败
    formatter1.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
    NSDate *date1 = [formatter1 dateFromString:str];
    NSLog(@"%@",date1);
    return 0;
}

上一篇下一篇

猜你喜欢

热点阅读