天天看点

iOS - OC NSCalendar 日历前言1、日历的创建2、日历的设置3、日历设置信息的获取4、日历信息的获取

NSCalendar 对世界上现存的常用的历法进行了封装,既提供了不同历法的时间信息,又支持日历的计算。

NSCalendar -- 日历类,它提供了大部分的日期计算接口,并且允许您在NSDate和NSDateComponents之间转换

NSTimeZone -- 时区信息

NSLocale -- 本地化信息

NSDate -- 表示一个绝对的时间点

NSDateComponents -- 一个封装了具体年月日、时秒分、周、季度等的类

NSDateFormatter -- 用来在日期和字符串之间转换

firstWeekday

大家在使用 dateComponents.weekday 获取某天对应的星期时,会发现,星期日对应的值为 1,星期一对应的值为 2,星期二对应的值为 3,依次递推,星期六对应的值为 7,这与我们平时理解的方式不一样。然后,我们就开始找是不是可以设置这种对应关系。终于,我们在 NSCalendar 中发现了 firstWeekday 这个变量,从字面意思上看貌似就是我们寻找的那个东西。可是,设置过 firstWeekday 后,我们又发现完全没有作用,真是郁闷啊!其实,大家不必郁闷,因为郁闷也没用,iOS 中规定的就是周日为 1,周一为 2,周二为 3,周三为 4,周四为 5,周五为 6,周六为 7,无法通过某个设置改变这个事实的,只能在使用的时候 注意一下这个规则了。那 firstWeekday 是干什么用的呢?大家设置一下 firstWeekday,再获取一下 dateComponents.weekOfYear 或 dateComponents.weekOfMonth,看看返回的数据是否发生了变化。firstWeekday 的作用确实是修改当前历法中周的起始位置,但是不能修改周日对应的数值,只能修改一年或一个月中周的数量,以及周的次序。

1)获取一个小的单位在一个大的单位里面的序数

2)获取一个小的单位在一个大的单位里面的取值范围

3)获取所在日历单位的开始时间及所在日历单位的总秒数