iOS 时间戳

NSDate

1.NSDate对象用来表示一个具体的时间点;

2.NSDate是一个类簇。我们所使用的NSDate对象,都是NSDate的私有之类的实体;

3.NSDate储存的是GMT时间,使用的时候会根据当前应用指定的时区进行时间上的增减,以供计算或显示。

NSCalendar

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

// currentCalendar取得的值会一直保持在cache中,第一次取得以后如果用户修改该系统日历设定,这个值也不会改变。

NSCalendar* calendar = [NSCalendar currentCalendar];

//如果用autoupdatingCurrentCalendar,那么每次取得的值都会是当前系统设置的日历的值。

 NSCalendar* autoupdatingCurrent = [NSCalendar autoupdatingCurrentCalendar];

//如果想要用公历的时候,就要将NSDateFormatter的日历设置成公历。否则随着用户的系统设置的改变,取得的日期的格式也会不一样。

NSCalendar*initCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

NSDateComponents

NSDateComponents:时间容器,一个包含了详细的年月日时分秒的容器。

NSDateFormatter

NSDateFormatter:用于格式化NSDate对象,支持本地化的信息。

常用方法合集

拆分时间

NSDate *currentDate = [NSDate date];//当前时间

NSCalendar *calendar = [NSCalendar currentCalendar];//当前用户的calendar

NSDateComponents * components = [calendar components:NSCalendarUnitYear | NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitMonth | NSCalendarUnitHour | NSCalendarUnitDay fromDate:currentDate];

NSLog(@"%ld年%ld月%ld日%ld时%ld分%ld秒",(long)components.year ,(long)components.month,(long)components.day,(long)components.hour,(long)components.minute,(long)components.second);

根据拆封时间返回NSDate

NSDateComponents * components = [[NSDateComponents alloc] init];

components.year = 2015;

components.month = 9;

components.day = 28;

components.hour = 14;

components.minute = 38;

components.second = 20;

NSCalendar * calendar = [NSCalendar currentCalendar];

NSDate * date = [calendar dateFromComponents:components];

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

formatter.dateFormat = @"yyyy年MM月dd日hh时mm分ss秒";

NSString * str = [formatter stringFromDate:date];

NSLog(@"%@",str);

NSDateFormatter提供了自定义日期时间的方法,主要是通过设置属性 dateFormat,常见的设置如下:

NSDate * now = [NSDate date];

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];

formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

formatter.dateFormat = @"yyyy-MM-dd a HH:mm:ss EEEE";

NSString* dateString = [formatter stringFromDate:now];

NSLog(@"\n%@", dateString);

打印输出:2012-10-29 下午 16:25:27 星期一

整理自:

https://www.jianshu.com/p/d7b99f1c081b

https://www.cnblogs.com/wangxiaofeinin/p/3546218.html

https://www.jianshu.com/p/41ab0eaa78ef

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容