Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将字符串转换为NSDate对象_Iphone_Objective C_Ios_Nsdate_Date Format - Fatal编程技术网

Iphone 将字符串转换为NSDate对象

Iphone 将字符串转换为NSDate对象,iphone,objective-c,ios,nsdate,date-format,Iphone,Objective C,Ios,Nsdate,Date Format,我从webservice获得字符串“2011-09-24T00:30:00.000-07:00”。 我不知道这种格式是什么,希望在objective-c中转换为date对象 因此,任何人都知道如何将此字符串转换为日期 非常感谢从该格式中获取日期/时间有一个小问题,需要删除时区中的“:”,苹果公司不处理此情况,也不是一个合适的UTS格式。以下是一个例子: NSString *dateString = @"2011-09-24T00:30:00.000-07:00"; dateString = [d

我从webservice获得字符串“2011-09-24T00:30:00.000-07:00”。 我不知道这种格式是什么,希望在objective-c中转换为date对象

因此,任何人都知道如何将此字符串转换为日期


非常感谢

从该格式中获取日期/时间有一个小问题,需要删除时区中的“:”,苹果公司不处理此情况,也不是一个合适的UTS格式。以下是一个例子:

NSString *dateString = @"2011-09-24T00:30:00.000-07:00";
dateString = [dateString stringByReplacingOccurrencesOfString:@":" withString:@"" options:0 range:NSMakeRange(dateString.length-3, 1)];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"date: %@", date);
NSLog输出:
日期:2011-09-24 07:30:00+0000

作为显示刚创建日期的测试:

NSString *testDateString = [formatter stringFromDate:date];
NSLog(@"date: %@", testDateString);
NSLog输出:
日期:2011-09-24T03:30:00.100-0400


请注意,考虑到日期/时间与原始日期/时间相同,NSLog已将时间和时区转换为我的本地时区。

从该格式获取日期/时间时存在一个小问题,需要删除时区中的“:”,苹果公司不处理这种情况,也不是一种合适的UTS格式。以下是一个例子:

NSString *dateString = @"2011-09-24T00:30:00.000-07:00";
dateString = [dateString stringByReplacingOccurrencesOfString:@":" withString:@"" options:0 range:NSMakeRange(dateString.length-3, 1)];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"];
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"date: %@", date);
NSLog输出:
日期:2011-09-24 07:30:00+0000

作为显示刚创建日期的测试:

NSString *testDateString = [formatter stringFromDate:date];
NSLog(@"date: %@", testDateString);
NSLog输出:
日期:2011-09-24T03:30:00.100-0400


请注意,NSLog已将时间和时区转换为我的本地时区,同时考虑到这两个更改,日期/时间与原始日期/时间相同。

web服务通常用于日期/时间表示的字符串格式为

它不能简单地转换为NSDate或从NSDate转换为NSDate,因为它可能包含仅由NSDate无法表示的各种信息(例如UTC的时间偏移量,以及未指定时间的日期)


有一些类可以将RFC3339字符串映射到本地Cocoa类型,或将其映射到本地Cocoa类型,例如。您可以通过使用快捷方式进行更简单的转换,但对于健壮的代码,请使用专门编写的类来处理表示。

web服务通常用于日期/时间表示的字符串格式是

它不能简单地转换为NSDate或从NSDate转换为NSDate,因为它可能包含仅由NSDate无法表示的各种信息(例如UTC的时间偏移量,以及未指定时间的日期)


有一些类可以将RFC3339字符串映射到本地Cocoa类型,或将其映射到本地Cocoa类型,例如。您可能可以通过使用快捷方式进行更简单的转换,但对于健壮的代码,使用专门编写的类来处理表示。

可能重复的Hi可能重复的Hi感谢回复此代码帮助我创建date对象,但问题是它显示的时间错误,因为我的时区可能不同,您能否创建我给出的字符串中的excate time。如果是的话,你能告诉我怎么做吗…嗨,谢谢你的回复。这段代码帮助我创建日期对象,但问题是它显示了错误的时间,因为我的时区可能不同,你能创建我给出的字符串中的excate时间吗。如果是,那么你能告诉我怎么做。。。