日期字符串转换为NSDate

 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 日期对象
时间: 2024-08-28 23:21:11

日期字符串转换为NSDate的相关文章

将某个日期字符串转换为java.sql.Date的类型

import java.text.ParseException; import java.text.SimpleDateFormat; public class date { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { String endDate=" 2014-09-10  "; System.out.print

将UTC日期字符串转为本地时间字符串,如@"yyyy-MM-dd'T'HH:mm:ssZ"转换为本地时间

由于苹果商店上线应用24小时内会不稳定,更新提醒可能会陷入死循环,更新提醒需要24小时后弹出,需要把苹果返回的上线时间转换为本地时间故写了下边的方法: //将UTC日期字符串转为本地时间字符串//输入的UTC日期格式2013-08-03T04:53:51+0000-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate{    NSDateFormatter *dateFormatter = [[NSDateFormatter all

mysql str_to_date字符串转换为日期

mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期. 示例:分隔符一致,年月日要一致 select str_to_date('2008-4-2 15:3:28','%Y-%m-%d %H:%i:%s'); select str_to_date('2008-08-09 08:9:30', '%Y-%m-%d %h:%i:%s'); 对于这个已经理解,但是为何查询字段时使用这种方法查询出来的数据为null???? 刚发现的问题,尝试在client上查询,发现可以出现

将字符串转换为日期比较大小

//将字符串转换为日期            var begin = new Date($("#<%=txtNow.ClientID %>").val().replace(/-/g, "/"));            var end = new Date($("#<%=txtENDTIME.ClientID %>").val().replace(/-/g, "/"));            //js

使用SimpleDateFormat注意的地方和在jsp中将字符串转换为日期

一.使用SimpleDateFormat注意的地方 SimpleDateFormat将字符串转换为日期类型时,转换的格式必须和字符串的格式一样,否则就会报错,比如:将字符串"20150825195057"转化为日期类型,转换格式必须是 "yyyyMMddHHmmss",如果是其他格式,将会报   java.text.ParseException: Unparseable date: "20150825195057"异常.那如果要将字符串转换成yy

js中字符串转换为日期和比较大小

本文转载于:http://yun342173024.iteye.com/blog/1873756在做前端校验的时候,要做日期比较的校验,在js中把字符串转化为日期,一时之间还真不知道在js中怎么把一个字符串格式的日期转化为Date,查看了一些资料,在此分享下. 下面以调用js中Date(year,month,day)来生成一个日期对象.  1.把字符串格式转换为日期的函数,函数接受两个参数,dateStr字符串日期格式,  separator日期格式分隔符,默认是-.,这里没有对字符串的日期格式

Python之字符串转换为日期、结合时区的日期操作

一.字符串转换为日期 方法一 s = '2019-01-20' print(datetime.strptime(s, '%Y-%m-%d')) # 2019-01-20 00:00:00 方法二 def parse_ymd(s): year_s, mon_s, day_s = s.split('-') return datetime(int(year_s), int(mon_s), int(day_s)) s = '2019-01-20' res = parse_ymd(s) print(res

Java的日期字符串的转换---博客园老牛大讲堂

关于日期的转换:参考下面代码---博客园老牛大讲堂 代码目的:1.主要是把字符串的日期类型转换为日期类型 2.计算n天后的日期. 3.把计算结果转化为字符串. 详细了解字符串之间的转换:http://www.blogjava.net/Werther/archive/2009/06/09/280954.html package text; import java.text.ParseException; import java.text.SimpleDateFormat; import java.

日期字符串转换 and 两个日期相减

//创建当前日期 NSDate *date = [NSDate date]; //创建日期格式类 NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init]; //设置日期格式 [dateFormat setDateFormat:@"yyyy/MM/dd HH:mm:ss"]; //获取招聘信息的创建日期 NSDate *createDate =[dateFormat dateFromString:_recruit.creat