2014-10-06 27 views
-1

iOS允许日期翻转日期,例如30日,11月31日的30日到最近的未来日期,例如3月1日,12月1日我的情况。上述工程与格式mm/dd或DD/mm.But时dateFromString用于提取日期形式字符串,我在xcode中面临的一个问题,如下的日期:iOS中的日期翻转失败

NSString *myDateString = @"29 Feb 2014"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd MMM yyyy"]; 
NSDate *myDate = [dateFormatter dateFromString:myDateString]; 
NSLog(@"%@", myDate); 

在Xcode的输出对于myDate,5是“空”。

但有意思的是,代码在一个在线的Objective-C编译器中工作,如http://www.compileonline.com/compile_objective-c_online.php: 这是按预期给我的日期为“2014-03-01 00:00:00 -0600”。

我在做什么错?

+1

在2014年没有29 Feb. @ Deepak – 2014-10-06 09:01:26

+0

嗨Ramesh,我知道它。事实上,逻辑与日期翻转(所以2014年,非闰年)有关,我正在测试诸如2/29,2/30 ,11/31等。他们全部转移到下一个直接约会。但是,当我使用dateFromString方法,它不工作的xcode。(但提及它是在一个在线编译器) – Deepak 2014-10-06 09:08:50

回答

1

因为2014年不是闰年。 :)

化妆年= 2016

NSString *myDateString = @"29 Feb 2016"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"dd MMM yyyy"]; 
NSDate *myDate = [dateFormatter dateFromString:myDateString]; 
NSLog(@"%@", myDate); 

输出

2016年2月28日18:30:00 +0000

+0

其实,逻辑与日期翻转(所以2014年,非闰年)和我'正在测试诸如2/29,2/30,11/31等的可能性。它们都会滚动到下一个直接日期。但是,当我使用dateFromString方法时,它不工作xcode。(但正如提到的它正在联机编译器中工作) – Deepak 2014-10-06 09:08:04