初始化
//
创建出来一个时间
获取系统当前时间
NSDate
* date = [
NSDate
date
];
NSDate
* date1 = [
NSDate
new
];
//
等价于上面的写法
NSDate
* date2 = [[
NSDate
alloc
]
init
];
//
也等价于上面的写法
变化
//
用一个时间加上多少秒
产生另一个时间
NSDate * tomorrow = [date dateByAddingTimeInterval:
24
*
60
*
60
];
//
用一个时间加上一个负数,相当于减去多小秒
产生一个之前的时间
NSDate * yesterday = [date dateByAddingTimeInterval:-
24
*
60
*
60
];
比较
//
可以用
compare
来比较时间的先后,
//NSComparisonResult
创建一个接收比较结果的对象
NSComparisonResult rst = [tomorrow compare:yesterday];
//
返回较早的时间
(之前的时间会较早)
NSDate * dateEarly = [tomorrow earlierDate:yesterday];
//
返回较晚的时间
(之后的时间较晚)
NSDate * dateLater = [tomorrow laterDate:yesterday];
#过去和未来的时间
//
遥远的未来的时间
NSDate * date10 = [NSDate distantFuture];
//
遥远的过去的时间
NSDate * date11 = [NSDate distantPast];
时间差
//
返回一个时间差
两个时间相距多长时间
以秒为单位
//NSTimeInterval
定义的其实是一个
double
类型的数据,这是这类型的数据系统会认为它是时间
NSTimeInterval time = [yesterday timeIntervalSinceDate:tomorrow];
格式化
//
创建一个日期转化格式的对象
NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
//
自定义
日期转换格式(
formatter
对象的具体格式)
//yyyy
表示年,
MM
表示月
,
dd
表示天,
HH
表示
24
小时制得时(
hh
表示
12
小时制)
mm
表示分,
ss
表示秒。
//
(大小写是不可以变得)
[formatter setDateFormat:
@"yyyy-MM-dd,HH:mm:ss”
];
//
把系统当前时间转换为
字符串
NSString * strDate = [formatter stringFromDate:date];
//
(
$ $ $ $
)格式换接收(时间)字符
//
把字符串的时间
转化为
NSDate
时间
NSDate * date12 = [formatter dateFromString:strDate];
//
也是要使用转化的格式的
日历和时间
//
日期的
分开输入
NSCalendar * calendar = [NSCalendar currentCalendar];
//
创建一个日历用来接收时间
//
输入时区
NSTimeZone * timezone = [NSTimeZone timeZoneWithName:
@"Asia/Shanghai"
];
//
创建时间组件
NSDateComponents * components = [[NSDateComponents alloc]init];
[components setTimeZone:timezone];
[components setYear:
2008
];
[components setMonth:
8
];
[components setDay:
8
];
[components setHour:
16
];
[components setMinute:
8
];
[components setSecond:
8
];
NSDate * beijingOlmpicGamesTime = [calendar dateFromComponents:components];
同样的这一个日历也可以反着来
//
初始化日历类
:
可以通过
calendar
来从一个
NSDate
类型的数据中获取年、月、日
NSCalendar
* calendar = [
NSCalendar
currentCalendar
];
//
获取当前时间
NSDate
* currentDate = [
NSDate
date];
//
使用
calendar
获取年、月、日 (这一个像是在其内提取数据)
//并且选取的参数是多选(位移枚举)
NSDateComponents
* components = [calendar
components
:
NSCalendarUnitYear
|
NSCalendarUnitMonth
|
NSCalendarUnitDay
fromDate
:currentDate];
NSInteger
year = components.
year
;
NSInteger
month = components.
month
;
NSInteger day = components.day;
时区
这样可以获得所有的时区
NSArray * arr = [NSTimeZone knownTimeZoneNames];