标签:
1 // 纯数字日期
2 NSString *str1 = @"20150611132535";
3 // 日期字符串
4 NSString *str2 = @"2015/05/12 10:22:01";
5 // 带时区的日期字符串
6 NSString *str3 = @"Tue Sep 06 21:37:19 +0800 2015";
7 // 不带时区的日期字符串
8 NSString *str4 = @"Tue Sep 05 21:15:27 2015";
9 // 格林尼治时间
10 NSString *str5 = @"Wed, 4 Nov 2015 03:25:31 GMT";
11
12 // 创建日期格式化对象
13 NSDateFormatter *format = [[NSDateFormatter alloc] init];
14 // 设置地区
15 [format setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
16
17 // str1
18 [format setDateFormat:@"yyyyMMddHHmmss"];
19 NSDate *date1 = [format dateFromString:str1];
20 NSLog(@"%@", date1);
21
22 // str2
23 [format setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
24 // [format setDateFormat:@"yyy/MM/d h:m:ss"];
25 // [format setDateFormat:@"yyyy/MM/dd H:m:ss"];
26 NSDate *date2 = [format dateFromString:str2];
27 NSLog(@"%@", date2);
28
29 // str3
30 // 以下方法在iOS8以后貌似会出现问题,所以另外补充一种使用C语言格式日期方法
31 [format setDateFormat:@"EEE MMM dd HH:mm:ss zzz yyyy"];
32 NSDate *date3 = [format dateFromString:str3];
33 NSLog(@"%@", date3);
34
35 struct tm sometime;
36 const char *formatString = "%a %b %d %H:%M:%S %z %Y";
37 strptime([str3 UTF8String], formatString, &sometime);
38 date3 = [NSDate dateWithTimeIntervalSince1970:mktime(&sometime)];
39 NSLog(@"%@", date3);
40
41 // str4
42 [format setDateFormat:@"EEE MMM dd HH:mm:ss yyyy"];
43 NSDate *date4 = [format dateFromString:str4];
44 NSLog(@"%@", date4);
45
46 // str5
47 NSDateFormatter *formatGMT = [[NSDateFormatter alloc] init];
48 // 设置时间地区
49 [formatGMT setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
50 [formatGMT setDateFormat:@"EEE, dd MMM yyy HH:mm:ss zzz"];
51 NSDate *date5 = [formatGMT dateFromString:str5];
52 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 日期对象 |
标签:
原文地址:http://www.cnblogs.com/initial-road/p/datefromstring.html