日期字符串转换为NSDate
2024-10-10 09:58:55
// 纯数字日期
NSString *str1 = @"";
// 日期字符串
NSString *str2 = @"2015/05/12 10:22:01";
// 带时区的日期字符串
NSString *str3 = @"Tue Sep 06 21:37:19 +0800 2015";
// 不带时区的日期字符串
NSString *str4 = @"Tue Sep 05 21:15:27 2015";
// 格林尼治时间
NSString *str5 = @"Wed, 4 Nov 2015 03:25:31 GMT"; // 创建日期格式化对象
NSDateFormatter *format = [[NSDateFormatter alloc] init];
// 设置地区
[format setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; // str1
[format setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date1 = [format dateFromString:str1];
NSLog(@"%@", date1); // str2
[format setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
// [format setDateFormat:@"yyy/MM/d h:m:ss"];
// [format setDateFormat:@"yyyy/MM/dd H:m:ss"];
NSDate *date2 = [format dateFromString:str2];
NSLog(@"%@", date2); // str3
// 以下方法在iOS8以后貌似会出现问题,所以另外补充一种使用C语言格式日期方法
[format setDateFormat:@"EEE MMM dd HH:mm:ss zzz yyyy"];
NSDate *date3 = [format dateFromString:str3];
NSLog(@"%@", date3); struct tm sometime;
const char *formatString = "%a %b %d %H:%M:%S %z %Y";
strptime([str3 UTF8String], formatString, &sometime);
date3 = [NSDate dateWithTimeIntervalSince1970:mktime(&sometime)];
NSLog(@"%@", date3); // str4
[format setDateFormat:@"EEE MMM dd HH:mm:ss yyyy"];
NSDate *date4 = [format dateFromString:str4];
NSLog(@"%@", date4); // str5
NSDateFormatter *formatGMT = [[NSDateFormatter alloc] init];
// 设置时间地区
[formatGMT setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[formatGMT setDateFormat:@"EEE, dd MMM yyy HH:mm:ss zzz"];
NSDate *date5 = [formatGMT dateFromString:str5];
NSLog(@"%@", date5);
定义函数 | 函数说明 | 函数返回值 |
time_t mktime(struct tm *timeptr); |
将时间结构数据转换成经过的秒数。 mktime() 用来将参数timeptr所指的tm结构数据转换成从公元 1970年1月1日 0时0分0秒 算起至今的UTC时间所经过的秒数。 |
返回经过的秒数 |
char *strptime(const char *buf, const char *format, struct tm *timeptr); |
strptime是将一个字符串格式化为一个tm结构类型 |
返回没有被格式化的日期字符串 |
+ (id)dateWithTimeIntervalSince1970:(NSTimeInterval)secs; |
返回以1970/01/01 GMT为基准,然后经过了secs秒的时间 |
NSDate 日期对象 |
最新文章
- 在Swift中实现单例方法
- 常用linux 命令 -字符串相关
- Eclipse下.project和.classpath作用(转)
- ARM Linux 3.x的设备树(Device Tree)
- linux zookeeper 原理详解
- MFC设置对话框大小
- iOS7 各种问题解决
- Sencha touch navigation 内嵌list,itemTap第二次点击不跳转的问题
- ejabberd的多域名(domain)设置
- svn常用操作命令(不断更新中......)
- UVALive - 3713 Astronauts
- 不到30行JS代码实现的Excel表格
- virtualBox使用nat模式下ssh连接
- hdu 4888 Redraw Beautiful Drawings 最大流
- JavaScript 值类型和引用类型的初次研究
- directX根据设备类GUID查询所属的filter
- dubbo自定义异常传递信息丢失问题解决
- Dubbo是什么
- 【转】HTTP429
- Hanlp等七种优秀的开源中文分词库推荐
热门文章
- NSCocoaErrorDomain Code=3840 ";The operation couldn’t be completed. (Cocoa error 3840.)";
- (贪心5.1.1)POJ 1230 Pass-Muraille
- 使用ajax代替iframe
- Android虚拟机Dalvik介绍
- OpenCV2马拉松第22圈——Hough变换直线检測原理与实现
- 分布式助手Zookeeper(一)
- MySQL 权限?
- javabean对象要实现的接口们和要重写的方法们
- 1.Linux系统(CenntOS)固定IP的设定
- IE6下Png透明最佳解决方案(推荐) Unit PNG Fix