博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS日期格式化
阅读量:6255 次
发布时间:2019-06-22

本文共 3556 字,大约阅读时间需要 11 分钟。

hot3.png

常用的时间格式

G:         公元时代,例如AD公元yy:     年的后2位yyyy:     完整年MM:     月,显示为1-12,带前置0MMM:     月,显示为英文月份简写,如 JanMMMM:     月,显示为英文月份全称,如 Janualydd:     日,2位数表示,如02d:         日,1-2位显示,如2,无前置0EEE:     简写星期几,如SunEEEE:     全写星期几,如Sundayaa:     上下午,AM/PMH:         时,24小时制,0-23HH:     时,24小时制,带前置0h:         时,12小时制,无前置0hh:     时,12小时制,带前置0m:         分,1-2位mm:     分,2位,带前置0s:         秒,1-2位ss:     秒,2位,带前置0S:         毫秒Z:        GMT(时区)

注:hh 和 HH是有区别的,hh是12小时制,HH是24小时制,

13:00:01 如果用 hh:mm:ss是解析不出来的,必须是 HH:mm : ss

 语系/地区码 

zh_cn 简体中文 zh_tw 繁体中文 da_dk 丹麦语 nl_nl 荷兰语 en_us 英语 fi_fi 芬兰语 fr_fr 法语 de_de 德语 it_it 意大利语ja_jp 日语 ko_kr 朝鲜语 nb_no 挪威语 pt_br 葡萄牙语 es_es 西班牙语 es_us 西班牙语(美国) sv_se 瑞典语

日期格式化用到的类 NSDateFormatter,作用是将日期转换成指定格式的字符串或特定格式的字符串转换成日期;

1、日期->字符串

NSDateFormatter *format = [[NSDateFormatter alloc] init];[format setDateFormat:@"yyyy-MM-dd hh:mm:ss"];NSString *str = [format stringFromDate:date];输出结果:2017-03-08 01:03:31

2、字符串->日期

NSString *strDate = @"2017-03-08 01:03:31";NSDateFormatter *format = [[NSDateFormatter alloc] init];[format setDateFormat:@"yyyy-MM-dd hh:mm:ss"];NSDate *date = [format dateFromString:strDate];

3、Tue Mar 07 16:21:32 +0800 2017 -> 日期

注:Tue Mar 07 16:21:32 +0800 2017 是美国时间的格式,转换的时候需要设置地区编码"en_US",如果设置为"zh_cn",是无法解析的;

NSString *strDate = @"Tue Mar 07 16:21:32 +0800 2017";NSDateFormatter *formatter = [[NSDateFormatter alloc] init];formatter.dateFormat = @"EEE MMM dd HH:mm:ss ZZZ yyyy";formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];NSDate *date = [formatter dateFromString:strDate];    输出:2017-03-07 08:21:32 +0000    formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_cn"];输出:null

4、日期->Tue Mar 07 16:21:32 +0800 2017

NSDate *currentDate  = [NSDate date];NSDateFormatter *formatter = [[NSDateFormatter alloc] init];formatter.dateFormat = @"EEE MMM dd HH:mm:ss ZZZ yyyy";formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];NSLog(@"%@", [formatter stringFromDate:currentDate]);输出:Wed Mar 08 10:11:09 +0800 2017formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_cn"];输出:周三 3月 08 10:17:21 +0800 2017

5、时间戳 : 从1970年1月1号 00:00:00开始走过的毫秒数

NSString *strTime = @"1745645645645";NSTimeInterval time = strTime.longLongValue / 1000.0;NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];NSLog(@"%@", date);输出:2025-04-26 05:34:05 +0000

6、NSCalendar:获取年、月、日、时、分、秒

注:NSCalendar的初始化方法 [NSCalendar currentCalendar] 在高版本系统上有可能会崩溃,使用之前最好做版本判断

NSCalendar *calendar;    if([UIDevice currentDevice].systemVersion.doubleValue >= 8.0){   calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];}else{   calendar = [NSCalendar currentCalendar];}或者if([calendar respondsToSelector:@selector(calendarWithIdentifier:)]){        calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];    }else{        calendar = [NSCalendar currentCalendar];    }
NSDate *date = [NSDate date];   NSCalendar *calendar = [NSCalendar currentCalendar];NSInteger year = [calendar component:NSCalendarUnitYear fromDate:date];NSInteger month = [calendar component:NSCalendarUnitMonth fromDate:date];NSInteger day = [calendar component:NSCalendarUnitDay fromDate:date];    NSLog(@"%zd %zd %zd", year, month, day);输出:2017 3 8
NSDate *date = [NSDate date];   NSCalendar *calendar = [NSCalendar currentCalendar];NSDateComponents * comp =[calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date];    NSLog(@"%zd %zd %zd", comp.year, comp.month, comp.day);输出: 2017 3 8

 

转载于:https://my.oschina.net/mexiaobai1315/blog/854061

你可能感兴趣的文章
iscroll5实现下拉加载更多
查看>>
hdu1753()模拟大型实景数字相加
查看>>
Cocos2d-x之MenuItem
查看>>
Esper学习之六:EPL语法(二)
查看>>
流和文件
查看>>
iOS:UIMapView地图视图控件的简单使用
查看>>
关于Python的3张图
查看>>
作IFRAME于iOS您的设备上支持滚动
查看>>
后台数据库优化——板机
查看>>
C++ redirect input
查看>>
linux_sound_alsa_Android+alsa音频系统中的几个问题
查看>>
IOS Core Image之二
查看>>
python---__getattr__\__setattr_重载'.'操作
查看>>
VMware克隆虚拟机后网络不能正常使用的解决方法
查看>>
android平台TextView使用ImageSpan画廊GIF图像
查看>>
Android开发之ListView-SimpleAdapter的使用
查看>>
App.config提示错误“配置系统未能初始化”
查看>>
Angular - - ngChange、ngChecked、ngClick、ngDblclick
查看>>
JAVA学习第五十九课 — 网络编程概述
查看>>
远程共享文件夹
查看>>