pragma mark 时间、日期类 NSDate
pragma mark 概念
/**
一、NSDate 可以用来表示时间, 可以进行一些常见的 日期\时间处理
1. 创建 (date)
NSDate *nowDate = [NSDate date]; // 保存的是当前的时间
2. 添加一个 时间间隔 (dateByAddingTimeInterval: 追加的时间 (如果想打印当前东八区的时间 就加上8个小时的秒))
NSDate *nowDateChange = [nowDate dateByAddingTimeInterval:10];
3. 获取当前的时区 类 (NSTimeZone) (localTimeZone、systemTimeZone)
NSTimeZone *zone = [NSTimeZone systemTimeZone];
4. 获取当前的时区 和 指定时间的 时间差 (当前时区:secondsFromGMTForDate:0时区)
NSInteger seconds = [zone secondsFromGMTForDate:nowDate];
5. 获取当前的时区 的 时间 (当前时区:dateByAddingTimeInterval:时区差的秒数)
NSDate *newDate = [nowDate dateByAddingTimeInterval:seconds];
二、时间格式化 (NSDateFormatter)
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma NSDate
#warning 1.NSDate 创建和基本概念
// NSData 二进制的类
// 只要 是通过 data 方法创建的时间对象, 对象中 就保存了当前的时间
NSDate *nowDate = [NSDate date]; // 保存的是当前的时间
NSLog(@"nowDate = %@",nowDate); // 2016-07-31 13:13:29 +0000 (相差8个小时) +0000 (东八区是 +0000 如果在13:13:29 加上8个小时就是当前的时间了)
#warning 2.添加一个时间 间隔 (dateByAddingTimeInterval: 追加的时间 (如果想打印当前东八区的时间 就加上8个小时的秒))
// 在 nowDate 的基础上 追加多少秒
NSDate *nowDateChange = [nowDate dateByAddingTimeInterval:10];
NSLog(@"nowDateChange 加上10秒 = %@",nowDateChange);
#warning 3. 获取当前所处的时区 (NSTimeZone)
/**
localTimeZone
systemTimeZone
*/
NSTimeZone *zone = [NSTimeZone systemTimeZone];
#warning 4. 获取当前的时区 和 指定时间的 时间差 (secondsFromGMTForDate)
NSInteger seconds = [zone secondsFromGMTForDate:nowDate];
// NSLog(@"0时区 和 东八区的时间差 seconds %lu",seconds); // typedef long NSInteger; 因为是一个long 所以打印的是lu
#warning 5. 将当前的 时间差加上去 --- 得到的是
NSDate *newDate = [nowDate dateByAddingTimeInterval:seconds];
NSLog(@"东八区的 newDate = %@",newDate);
#pragma 2.时间格式化 (NSDateFormatter)
// xxxx年xx月xx日 xx小时xx分xx秒
// xxxx/xx/xx xx/xx/xx
// xx/xx/xxxx xx/xx/xx
NSDate *lDate = [NSDate date];
// 1.创建一个时间格式化 对象
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
// 2.告诉 时间格式化对象, 按照什么样的格式 来格式化时间
/**
yyyy 年
MM 月
dd 日
HH 24小时 hh 12小时
mm 分钟
ss 秒钟
Z 时区
*/
formatter.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒 Z";
// 3.利用 时间格式化对象 对 时间进行格式化
NSString *res = [formatter stringFromDate:lDate];
NSLog(@"res = %@",res);
#warning 1. NSString --> NSDate
NSString *dateS = @"2016-07-31 21:42:42 +0000";
NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
// 注意如果是 从NSString格式 转化为NSDate , 那么 dateFormat, 必须和字符串中的时间格式一致,否则可能转换失败
formatter1.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
NSDate *date1 = [formatter1 dateFromString:dateS];
NSLog(@"date1 %@",date1);
return 0;
}
网友评论