2013-08-07 60 views
8

我有这样IOS如何设置日期格式

NSString *datestr = @"2013-08-06T03:51:54+00:00"; 

字符串我尝试设置的日期格式如下:

NSDateFormatter *dformat = [[NSDateFormatter alloc]init]; 

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 

NSDate *date = [dformat dateFromString:datestr]; 

但日期将是零,那么,谁能告诉我如何设置dateformat,thx!

+3

不是一天没有'NSDateFormatter'重复! – Amar

+0

我想在“2015-12-31T01:45:00.5876454 + 05:30”这个fromat? – python

+0

这个问题的标题比先前回答的问题更具搜索友好性,另一个问题没有被接受的答案 – Gerald

回答

12

试试这个:

NSDateFormatter *dformat = [[NSDateFormatter alloc]init]; 

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"]; 

NSDate *date = [dformat dateFromString:datestr]; 

添加ZZZ您格式化结束。

+1

-1因为错误。打开Xcode并尝试自己。 –

+1

我试过了,它不起作用。 – billwang1990

1

尝试如下:

NSString *dateString = @"2013-08-06T03:51:54+00:00"; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ"; 

NSDate *date; 
NSError *error; 
[formatter getObjectValue:&date forString:dateString range:nil error:&error]; 
+0

我得到了结果,谢谢 – billwang1990

6

尝试这个代码

NSString *datestr = @"2013-08-06T03:51:54+00:00"; 
NSDateFormatter *dformat = [[NSDateFormatter alloc]init]; 

[dformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"]; 

NSDate *date = [dformat dateFromString:datestr]; 

使用小Z其中z给你 - 与特定非位置格式。在不可用的地方,可以回到本地化的GMT格式。对于短格式使用一到三个字母,对于完整格式使用四个字母。在短格式,metazone名称不使用,除非commonlyUsed标志是在语言环境

为区有关目标C是指该链接 http://www.unicode.org/reports/tr35/tr35-19.html#Date_Format_Patterns希望日期格式模式的详细信息,这将帮助你

+1

谢谢,它是正确的! – billwang1990

+0

另外请记住,您的格式字符串可以在某些区域进行奇迹式重写,有时https://developer.apple.com/library/ios/qa/qa1480/_index.html – Earlz