- 不要等到明天,明天太遥远,今天就行动。
须读:看完该文章你能做什么?
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;
}